由於Transform.LookAt是使Z軸看向目標,而2D基本是由X和Y軸構成的。所以在2D的游戲中,不太好使用。
所以用代碼實現一個2D的LookAt函數。
例子:
我們使怪物的眼睛一直看着雲。
怪物的眼睛朝向和localX軸的朝向一致,所以使怪物看着雲,即將localx指向雲。
給怪物掛上腳本
腳本編寫
寫法一:
void Update () {
Vector2 direction = target.transform.position - transform.position;
float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
寫法二:
void Update ()
{
Vector3 v = (target.position - transform.position).normalized;
transform.right = v;
}
隨后移動雲,怪物也會跟着轉向。