1

我在谷歌搜索中一直戴着我的回车键——我有一个基于 MouseOrbit.js 资产的相机脚本。这一切都很好,但除了我添加的基本轨道和缩放之外,我还想使用 WASD 键在世界各地移动相机。

W 键将向前移动相机,但它会忽略 y 轴。例如,使用

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

相对于相机向前移动相机。这会导致你快速落地。向后移动显然会适得其反。想要的效果是在世界上滑动而不会离它更近/更远,无论相机处于什么角度。

我能得到的最接近的是使用 Translate() 的 Space.World 参数,但这并没有考虑到我的相机的旋转。我想如果我能考虑到这一点,这将得到解决,但我不清楚如何做到这一点。

谢谢,克里斯

4

1 回答 1

1

(来自 http://Gamedev.stackecxchange.com 上的Tetrad

您不需要使用 transform.Translate。只需计算给定帧的相机应该向前移动多少(就像按住 W 键做 deltaPos = transform.forward * Time.deltaTime * 20),将该 Vector3 的 Y 值设置为零,然后添加通过将增量向量添加到当前位置来将其添加到原始位置 transform.position += deltaPos;

于 2013-02-01T20:41:37.567 回答