Skip to content
第08回 3D探索1

2 / 4 CharacterControllerとカメラを接続する

このステップの目的

入力方向をカメラ基準の移動方向へ変換し、プレイヤーを移動させる

カメラ基準へ変換する

入力の前後左右をワールド軸へ直接割り当てず、カメラのforwardとrightから作ります。垂直成分は移動方向から除きます。

csharp
Vector3 direction = cameraRight * input.x + cameraForward * input.y;
direction.y = 0f;
controller.Move(direction.normalized * speed * Time.deltaTime);

回転を分ける

移動方向へキャラクターを向ける処理は、移動処理と別の責任にします。第09回でAnimatorへ速度を渡すため、実際の移動量も記録します。

チェックリスト
  • カメラの向きに応じて前後左右へ移動できる
  • 移動方向から垂直成分を除いている
  • 移動処理と向きの処理を分けている