前後左右に移動する

2019-02-17#unity

相変わらずUnityでVRゲームを作っている。自分を前後左右に移動させるスクリプトの書き方を学んだ。

まず、一人称のプレイヤーを制御するにはCharacterControllerというコンポーネントを使う。これはRigidBodyのような物理特性を持たない、つまり重力のような力の影響を受けないけど、衝突判定を持ち、段差や斜面を移動できるような特性を持つ。

CharacterControllerコンポーネントを持つGame Objectに以下のようなスクリプトを追加する。

public class Walk : MonoBehaviour {
    public float velocity = 1.0f;
    private CharacterController controller;
 
    void Start () {
        controller = GetComponent<CharacterController> ();
    }
 
    void Update () {
        controller.SimpleMove (Camera.main.transform.forward * velocity);
    }
}

Unityやっててだんだんわかってきたけど、ベクトル(Vector3)を使った計算が頻繁に必要になってくる。Unity側でやってくれる部分もあるけど、自分で実装しないといけない場面もけっこうあるんだな〜と思った。なので、ベクトルを使った計算や物理法則もゆっくり勉強していきたい。