【问题标题】:How to ignore rotation while moving? (In Unity using C#)移动时如何忽略旋转? (在 Unity 中使用 C#)
【发布时间】:2016-02-04 17:57:42
【问题描述】:

我非常不擅长编程,但我想通过一些教程来尝试一些东西。

我基本上有一个对象,它使用 Android 的加速度计旋转,然后通过使用两个按钮,它要么向左要么向右。为此,我使用

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

transform.Translate(速度 * Time.deltaTime, 0, 0);

程序正常运行,一旦对象旋转,它会在“新的 x 轴”上移动,但我希望它在“世界的 x 轴”上移动,这是“永久”的。

由于我的编程和英语也很差,所以我做了一个简单的绘图,这样更容易理解我想要做什么:

http://i.stack.imgur.com/LpM1J.png

大写字母会发生什么(并且应该按照编程的方式发生),另一个是我想要实现的。有关如何执行此操作并“忽略”对象旋转的任何建议?

感谢您的宝贵时间:D

【问题讨论】:

    标签: c# android unity3d rotation


    【解决方案1】:

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

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

    Translate()相同:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 2022-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多