C# 多维数据集的方向似乎与Unity3D中的脚本相反

C# 多维数据集的方向似乎与Unity3D中的脚本相反,c#,unity3d,C#,Unity3d,我有一个立方体,主摄像机是它的孩子。我已在多维数据集上附加了一个脚本,在Update()中包含以下语句: 速度最初为0,并随着每帧的增加而增加 这将使立方体朝着相机朝向的前进方向移动。当立方体和摄影机的初始旋转分别为(0,0,0)和(0,0,0)时,此操作效果良好。如果相机旋转(0180,0),保持立方体旋转(0,0,0),也可以正常工作。但如果立方体旋转(0180,0),立方体和相机将反向移动 我甚至试过: transform.Translate(Vector3.MoveTowards(tra

我有一个立方体,主摄像机是它的孩子。我已在多维数据集上附加了一个脚本,在Update()中包含以下语句:

速度最初为0,并随着每帧的增加而增加

这将使立方体朝着相机朝向的前进方向移动。当立方体和摄影机的初始旋转分别为(0,0,0)和(0,0,0)时,此操作效果良好。如果相机旋转(0180,0),保持立方体旋转(0,0,0),也可以正常工作。但如果立方体旋转(0180,0),立方体和相机将反向移动

我甚至试过:

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

但结果相同。

如果不明确指定,则假定平移是相对于对象空间的。在这里,你可能想在世界空间中使用摄影机方向移动立方体。请尝试以下操作:

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