【Unity】CharacterController.Move と CharacterController.SimpleMove
CharacterController.Move
と CharacterController.SimpleMove
は、Unityエンジンでキャラクターを制御するために使用される2つのメソッドです。
以下は、それぞれのメソッドの違いを説明したものです。
CharacterController.Move
CharacterController.Move
メソッドは、キャラクターを指定した速度で移動させることができます。このメソッドは物理シミュレーションを使用せず、直接キャラクターを移動させます。そのため、壁や障害物と衝突した場合でも、キャラクターをすり抜けさせることができます。
このメソッドは、以下のように使用されます。
Vector3 moveDirection = new Vector3(0, 0, 1);
float speed = 5.0f;
characterController.Move(moveDirection * speed * Time.deltaTime);
この例では、キャラクターを moveDirection
方向に speed
の速度で移動させます。
CharacterController.SimpleMove
CharacterController.SimpleMove
メソッドは、物理シミュレーションを使用してキャラクターを移動させることができます。このメソッドは重力や摩擦力などの物理的な要素を考慮してキャラクターを移動させるため、よりリアルな動きを実現することができます。
このメソッドは、以下のように使用されます。
Vector3 moveDirection = new Vector3(0, 0, 1);
float speed = 5.0f;
characterController.SimpleMove(moveDirection * speed);
この例では、キャラクターを moveDirection
方向に speed
の速度で移動させます。
簡単に言えば、CharacterController.Move
は物理シミュレーションを使用せずにキャラクターを移動させるため、壁や障害物と衝突した場合でもすり抜けさせることができます。一方、CharacterController.SimpleMove
は物理シミュレーションを使用してキャラクターを移動させるため、よりリアルな動きを実現することができますが、壁や障害物にぶつかった場合はキャラクターが止まるようになります。
ディスカッション
コメント一覧
まだ、コメントがありません