【Unity】3Dオブジェクトを移動方向に向ける
オブジェクトが移動する方向を向くコードをみていきましょう
transform.LookAtメソッドを使う
transform.LookAt(transform.position + moveVelocity);
このコードはUnityゲームエンジン内のスクリプトで、オブジェクトを指定位置に向けるものです。具体的には、オブジェクトのトランスフォーム情報を使用し、LookAtメソッドを呼び出して、transform.positionにmoveVelocityベクトルを加えてオブジェクトを向かせます。これは、キャラクターが移動方向を向いたまま移動するために使われます。
Quaternion.Slerpメソッドを使う
if (moveVelocity != Vector3.zero)
{
Quaternion targetRotation = Quaternion.LookRotation(moveVelocity);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, Time.deltaTime * 10f); // 滑らかな回転
}
このコードは、moveVelocity ベクトルがゼロでない場合、オブジェクトをそのベクトルの方向に滑らかに回転させます。目標の回転を計算し、Quaternion.Slerp を使用して現在の回転から目標の回転に滑らかに変化させます。回転速度は Time.deltaTime を考慮して調整され、10f をかけています。
ディスカッション
コメント一覧
まだ、コメントがありません