【问题标题】:Unity2D - Why does the object rotate around the X/Y axis rather than the ZUnity2D - 为什么对象围绕 X/Y 轴而不是 Z 轴旋转
【发布时间】:2013-12-20 13:49:01
【问题描述】:

我正在尝试在 Unity 2D 中旋转一个对象以面对另一个对象。但是,我在理解统一使用 2D 转换的方式时遇到了一些麻烦,我能找到的大多数示例都是为 3D 设计的。

使用下面的代码,我可以使对象旋转以面向正确的方向,但它也会旋转对象,以便它是指向它的 Z 轴。理想情况下,对象将围绕 Z 轴旋转。

rigidbody2D.transform.LookAt(currentlyTargeted.transform.position);

任何指导将不胜感激。

【问题讨论】:

  • 您是否尝试设置 worldUp 参数并检查其行为? docs.unity3d.com/Documentation/ScriptReference/…
  • 谢谢,我没有意识到它的存在。但是,我已经尝试了 Vector3 的每种组合(上、前、下、左、右),但我似乎仍然遇到同样的问题。 Z 轴指向对象。 rigidbody2D.transform.LookAt(currentlyTargeted.transform.position, Vector3.up);
  • 在类似的问题上,我总是发现我的对象设置不正确,或者忘记了我事先已经对其进行了转换。

标签: c# rotation unity3d


【解决方案1】:

确保您的对象在网格/精灵中的方向正确旋转,或将对象放置在用于偏移 X/y 轴旋转的虚拟对象中

【讨论】:

    【解决方案2】:

    我最近在使用 LookAngle 时遇到了类似的问题 - 请注意这些函数有两个参数(第二个默认为 Vector3.up) - 我的诀窍是像这样调用 LookAngle:

    LookAngle(Vector3.forward, myCalculatedPositionsDifference)
    

    也许它对您的情况也有帮助?

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 2021-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多