Unityでの一人称視点の実装方法


  1. カメラの配置:

    • プレーヤーの視点を再現するために、カメラをプレーヤーオブジェクトにアタッチします。カメラをプレーヤーの子オブジェクトとして配置することで、プレーヤーの動きに追従させることができます。
  2. プレーヤーコントロールの設定:

    • プレーヤーオブジェクトには、入力に応じて移動や回転を行うスクリプトを追加する必要があります。一般的な方法としては、キーボードやマウスの入力を受け取り、プレーヤーオブジェクトの位置と回転を更新するスクリプトを作成します。以下は、キーボード入力に基づいてプレーヤーを移動させる例です。
    using UnityEngine;
    public class PlayerController : MonoBehaviour
    {
       public float moveSpeed = 5f;
       void Update()
       {
           float horizontalInput = Input.GetAxis("Horizontal");
           float verticalInput = Input.GetAxis("Vertical");
           Vector3 moveDirection = new Vector3(horizontalInput, 0f, verticalInput);
           moveDirection.Normalize();
           transform.Translate(moveDirection * moveSpeed * Time.deltaTime);
       }
    }

    上記のスクリプトは、水平方向の入力を「Horizontal」として、垂直方向の入力を「Vertical」として受け取ります。入力を正規化し、移動速度とフレームレートに基づいてプレーヤーを移動させます。

  3. マウスの視点移動の設定:

    • プレーヤーの視点をマウスの動きに追従させるために、カメラを回転させるスクリプトを追加します。以下は、マウスの入力に基づいてカメラを回転させる例です。
    using UnityEngine;
    public class CameraController : MonoBehaviour
    {
       public float sensitivity = 2f;
       void Update()
       {
           float mouseX = Input.GetAxis("Mouse X");
           float mouseY = Input.GetAxis("Mouse Y");
           transform.rotation *= Quaternion.Euler(0f, mouseX * sensitivity, 0f);
           transform.GetChild(0).transform.rotation *= Quaternion.Euler(-mouseY * sensitivity, 0f, 0f);
       }
    }

    上記のスクリプトは、マウスの水平方向の入力を「Mouse X」として、垂直方向の入力を「Mouse Y」として受け取ります。カメラの回転は、マウスの入力に基づいて更新されます。