2013-02-01 45 views
1

我一直在谷歌搜索中佩戴我的輸入鍵 - 我有一個基於MouseOrbit.js資源的攝像頭腳本。這一切都工作正常,但除了基本的軌道和我添加的縮放,我想使用WASD鍵移動相機在世界各地。僅在x/z平面上使用WASD的攝像機移動

W鍵會直接向前移動攝像機,但它會忽略y軸。例如,使用

transform.Translate(Vector3.Forward*Time.Delta*20);

移動相機向前相對於相機。這導致你快速擊中地面。明顯地移回來則相反。無論攝像機處於何種角度,所期望的效果都是在整個世界範圍內滑動,而不會靠近/遠離它。

我能得到的最接近的是使用Translate()的Space.World參數,但是這並沒有考慮到我的相機的旋轉。我想如果我能考慮到這一點,這將得到解決,但我不清楚如何做到這一點。

謝謝, 克里斯

回答

1

(從四分上http://Gamedev.stackecxchange.com

你並不需要使用transform.Translate。只需計算相機應該向前移動多長時間(例如,如果按住W鍵做deltaPos = transform.forward * Time.deltaTime * 20),將該Vector3的Y值設置爲零,然後添加將delta矢量添加到當前位置transform.position + = deltaPos;

相關問題