2013-08-16 39 views
-2

我有一個Cube和主攝像頭作爲它的孩子。我已附加的腳本在立方體與更新()以下聲明:立方體似乎與Unity3D中的腳本相反方向

transform.Translate(Vector3.Normalize(Camera.main.transform.forward) * speed); 

速度= 0最初和增加與每一幀。

這應該使攝像機朝前的方向移動立方體。當立方體和相機的初始旋轉分別爲(0,0,0)和(0,0,0)時,這工作正常。如果相機旋轉(0,180,0),保持立方體處於(0,0,0)旋轉,它也可以正常工作。但是如果立方體被旋轉(0,180,0),立方體並且因此相機沿相反方向移動。

我甚至試過這樣:

transform.Translate(Vector3.MoveTowards(transform.position, Camera.main.transform.forward, speed)); 

但隨着相同的結果。

回答

1

如果您沒有明確指定,則認爲翻譯是相對於對象空間的。在這裏,你可能想要在世界空間中使用Camera方向移動立方體。請嘗試以下操作:

transform.Translate(Camera.main.transform.forward * speed, Space.World);