-2

我有一个立方体和主相机作为它的孩子。我在多维数据集上附加了一个脚本,并在 Update() 中使用以下语句:

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

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));

但结果相同。

4

1 回答 1

1

如果您没有明确指定它,则假定翻译是相对于对象空间的。在这里,您可能想在世界空间中使用相机方向移动立方体。尝试以下操作:

transform.Translate(Camera.main.transform.forward * speed, Space.World);
于 2013-08-16T11:58:15.880 回答