のしメモ アプリ開発ブログ

Unityアプリとかロボットとか作ってるときに困ったこととかメモ

LookAtを線形補間を使って使いたい

オブジェクトを任意の方向に向けるtransform.LookAt()というメソッドがありますが、それを線形補間(Lerp)を使って表現する方法メモ

コード

Vector3 targetPosition; // 任意の向く方向
float speed; // 回転スピードを定義

-----------------------

Vector3 direction = targetPosition - transform.position;
Quaternion toRotation = Quaternion.FromToRotation(transform.forward, direction);
transform.rotation = Quaternion.Lerp(transform.rotation, toRotation, speed * Time.time);

-----------------------