在unity開發的過程中 很多時候需要一個物體跟隨另一個物體來旋轉
這個時候的lookat就是一個很好的方法
但是lookat的簡單使用也會有缺點 就是當兩個物體走的比較近的時候 另外一個物體會向下旋轉
下面我給出一個圖 讓大家更好理解一下
我本來的意思是讓這個3D字體永遠面朝發光物體
但是隨着距離的縮小 3Dtext越來越傾斜
於是我們需要固定這個物體的Y軸來實現這個效果
我們可能之前瞭解過 給他加一個剛體 然後從unity中鎖定一個軸
但是這個方法對於lookat方法是沒用的
我們需要在代碼中來控制
我們思路是 創建一個傀儡 然後讓他隨着傀儡而轉動 但是我們可以控制傀儡的Y軸
這樣我們想要的效果就很容易的實現了
所需代碼如下
public GameObject Player;//玩家
private Vector3 TargetRotation;//傀儡
void Update()
{
TargetRotation.x = Player.transform.position.x;
TargetRotation.z = Player.transform.position.z;
TargetRotation.y = 0;
transform.LookAt(TargetRotation);
}
這樣就很好解決了這個問題