対象物に向けて方向を変える(2D)
3DプログラムではLookAtで可能ですが、2Dの場合、思うような動作になりません。下記のようにすることでtargetの方向に向きを変えることができます。
次のサンプルでの
Quaternion.FromToRotation(Vector3.up, diff)
ですが、
Quaternion.FromToRotation(a, b)
aを回転させてbにする処理になります。
つまり、真上のY軸を回転させて、diff(ベクトル)の方向に向かせる処理になります。
using UnityEngine; public class LookAt2D : MonoBehaviour { [SerializeField] GameObject target; void Update() { // 対象物へのベクトルを算出 Vector3 diff = target.transform.position - transform.position; // 対象物へ回転する transform.rotation = Quaternion.FromToRotation(Vector3.up, diff); } }
ディスカッション
コメント一覧
まだ、コメントがありません