(インポート)
・PackageManagerを使って、Cinemachineをインポートする。(バージョン3.1.3)
(設定)
・「+」→「Cinemachine」→「Cinemachine Camera」を追加
・「Tracking Target」→「Ball」(追跡させたいオブジェクト)を設定
・「Position Control」→「Position Composer」を設定
*「Cinemachine Position Composer」が自動的に追加されます
・「Camera Distance」→自由に設定(ターゲットとの距離感)
・「Damping」→0に設定(カメラがターゲットに遅れてついて行く)
・「Rotation Control」→「Pan Tilt」を設定
*「Cinemachine Pan Tilt」が自動的に追加されます
・「Add Input Controller」をクリック
・「Cinemachine Input Axis Controller」が自動で追加されます
・ゲームを再生して、壁の背後も確認できればOK!
<カメラが向いている方向に進めるようにする>
(サンプルコード)
using UnityEngine;
public class Ball : MonoBehaviour
{
private InputSystem_Actions isa;
public float moveSpeed;
private Rigidbody rb;
public float jumpPower;
private bool isJumping = false;
void Start()
{
isa = new InputSystem_Actions();
isa.Enable();
rb = GetComponent<Rigidbody>();
}
void Update()
{
Vector2 movement2 = isa.Player.Move.ReadValue();
Vector3 movement3 = new Vector3(movement2.x, 0, movement2.y);
// ★追加
Vector3 desiredMove = Camera.main.transform.forward * movement3.z + Camera.main.transform.right * movement3.x;
// ★変更
rb.AddForce(desiredMove * moveSpeed);
if (isa.Player.Jump.triggered && isJumping == false)
{
rb.linearVelocity += Vector3.up * jumpPower;
isJumping = true;
}
}
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Floor"))
{
isJumping = false;
}
}
}
(実行確認)
・カメラの方向に進むことができれば成功です。