移动时如何忽略旋转? (在使用C#的Unity中)

时间:2016-02-04 17:57:42

标签: c# android unity3d rotation

我非常喜欢编程,但我想尝试使用一些教程。

我基本上有一个物体并使用Android的加速度计旋转,然后使用两个按钮,它可以向左或向右移动。为此,我使用

  

transform.Rotate(0,0,-temp * Time.deltaTime);

  

transform.Translate(speed * Time.deltaTime,0,0);

程序正常工作,一旦物体旋转,它就会在"新的x轴"中移动,但我希望它在"世界的轴上移动" ,一个"永久"。

由于我在编程和英语方面非常糟糕,因此我制作了一个简单的绘图,因此我更容易理解我想做什么:

https://angular.github.io/protractor/#/api

作为大写的是发生了什么(并且应该在编程时发生)以及另一个我想要实现的目标。关于如何做到这一点的任何建议和"忽略"物体的旋转?

感谢您的时间:D

1 个答案:

答案 0 :(得分:2)

如文档中所述,默认情况下Transform.Rotate()确实在本地空间中旋转,但可以配置为使用世界空间:

transform.Rotate (0, 0, -temp * Time.deltaTime, Space.World);

Translate()相同:

transform.Translate (speed * Time.deltaTime, 0, 0, Space.World);