【Unity】CharacterControllerの使い方

2023年4月1日

CharacterControllerは、Unityエンジンでキャラクターの動きを制御するためのコンポーネントです。以下は、CharacterControllerを使ってキャラクターを移動させる方法の一般的な手順です。

CharacterControllerコンポーネントをアタッチする

まず、キャラクターオブジェクトにCharacterControllerコンポーネントをアタッチします。これは、キャラクターの物理的な移動を制御するために必要なコンポーネントです。

入力を受け取る

キャラクターの移動に必要な入力を取得するために、キーボード、ジョイスティック、または他の入力デバイスから入力を取得する必要があります。例えば、キャラクターを前進させるには、キー入力を取得して前進方向のベクトルを作成します。

CharacterController.Move()メソッドを使用して移動する

CharacterController.Move()メソッドを使用して、キャラクターを指定した方向に移動させることができます。Move()メソッドは、移動ベクトルを引数として受け取り、その方向にキャラクターを移動させます。例えば、以下のようにしてキャラクターを前進させることができます。

CharacterController controller = GetComponent<CharacterController>();
Vector3 moveDirection = transform.forward * speed;
controller.Move(moveDirection * Time.deltaTime);

ここで、speedはキャラクターの速度を表す変数で、transform.forwardはキャラクターの前方向を表す単位ベクトルです。Time.deltaTimeは、前のフレームからの経過時間を表す値で、キャラクターの移動速度をフレームレートに依存しないようにするために使用されます。

キャラクターの回転を制御する

キャラクターの回転を制御するには、キャラクターのTransformコンポーネントを使用します。例えば、以下のようにしてキャラクターを回転させることができます。

transform.Rotate(0, rotationSpeed * Time.deltaTime, 0);

ここで、rotationSpeedはキャラクターの回転速度を表す変数です。

以上の手順で、CharacterControllerを使用してキャラクターを移動させることができます。