[Unity 3D] モンハン、マリオ64等のプレイヤーを中心にカメラが回転して追尾する処理
タイトル通りですがモンハン、マリオ64等のプレイヤーを中心にカメラが回転して追尾する処理
の作り方です。提示コードをそれぞれにアタッチするとカメラがプレイヤーを追尾して尚且つプレイヤーを中心に回転してカメラから見ての方向にプレイヤーその方向に向きます。
プレイヤーにアタッチ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerControl : MonoBehaviour
{
public GameObject camera;
public float moveSpeed = 10;
private Rigidbody rigidbody;
// Start is called before the first frame update
void Start()
{
rigidbody = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update()
{
float x = Input.GetAxisRaw("Horizontal");
float z = Input.GetAxisRaw("Vertical");
Vector3 cameraForward = Vector3.Scale(camera.transform.forward, new Vector3(1, 0, 1)).normalized;
Vector3 moveForward = (cameraForward * z) + (camera.transform.right * x);
rigidbody.velocity = moveForward * moveSpeed;
if( (inputHorizontal != 0) || (inputVertical != 0) )
{
transform.rotation = Quaternion.LookRotation(moveForward,transform.up);
}
}
}
カメラにアタッチ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraControl : MonoBehaviour
{
public GameObject player;
public float rotateSpeed = 5; //回転速度
private Vector3 offset; //プレイヤーとの距離
// Start is called before the first frame update
void Start()
{
offset = player.transform.position;
}
// Update is called once per frame
void Update()
{
Rotate(); //カメラ回転
Move(); //追尾
}
/*########################################## 追尾 ##########################################*/
private void Move()
{
transform.position += player.transform.position - offset;
offset = player.transform.position;
}
/*########################################## 回転 ##########################################*/
private void Rotate()
{
Vector3 angle = new Vector3(Input.GetAxis("Mouse X") * rotateSpeed, Input.GetAxis("Mouse Y") * -rotateSpeed, 0);
transform.RotateAround(player.transform.position, Vector3.up, angle.x);
transform.RotateAround(player.transform.position, transform.right, angle.y);
}
}
Author And Source
この問題について([Unity 3D] モンハン、マリオ64等のプレイヤーを中心にカメラが回転して追尾する処理), 我々は、より多くの情報をここで見つけました https://qiita.com/Shigurechan/items/f915f627192ca0191fba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .