【问题标题】:How to apply transform in Unity如何在 Unity 中应用变换
【发布时间】:2020-08-29 14:41:39
【问题描述】:

是否可以在 Unity 中通过脚本应用变换?

我所说的“应用”是将对象的当前位置/旋转/比例设置为默认值: 如果游戏对象在 x 轴上旋转 30°,则 Inspector 上的 x 旋转值当然会显示 30。通过应用旋转,检查器现在将显示 0 并且对象将保持其旋转。 30° 现在是该对象的默认旋转角度。

我知道你可以这样做,例如在Blender 中,但我不知道在 Unity 中是否也可以这样做。

【问题讨论】:

  • 在 Blender 中,您可以在网格基础上工作......在 Blender 中,您也不能在 Object 基础上执行此操作。当然,您也可以在 Unity 中基于网格应用相同的转换,但我不会这样做……您的实际用例是什么?
  • 幸运的是,有人已经为 Unity 构建了这个:github.com/mariosubspace/mesh-apply-transform-unity 目前这仅适用于编辑器,但如果需要,您可以轻松提取所需的方法,以便在运行时执行此操作
  • @derHugo 你的实际用例是什么?我仍在努力寻找this问题的答案,所以我只是在集思广益。
  • 大声笑,也许您应该尝试在那里修复您的错误。这使它成为典型的XY problem,因为您在这里询问的事情实际上比您想象的要复杂得多^^ 而且实际上绝对不是您想要解决原始问题所要做的......
  • 嗯,好的,谢谢。我会考虑其他方法来做到这一点

标签: unity3d transform


【解决方案1】:

您不能直接将其“应用”到对象,但您可以创建一个父对象,在需要时旋转该对象,并将旋转或位置“应用”到子对象,在本例中为模型。

你的层次结构应该是这样的

- Parent (this is the object you want to rotate/position/scale)
  - Child (this is the model, you "apply"/set default values to that object)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多