【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 をかけています。