【问题标题】:Transformation unity 3d转换统一 3d
【发布时间】:2017-05-23 01:07:45
【问题描述】:

我正在通过《24 小时 Unity 游戏开发》一书学习 Unity。书上说:

  • 翻译:翻译是一种惰性转换。这意味着之后应用的任何更改都不会受到影响。

  • 缩放:缩放有效地改变了局部坐标网格的大小。基本上,当您将对象缩放到更大时,您实际上是在将局部坐标系缩放到更大。这导致对象似乎在增长。这种变化是乘法的。例如,如果将对象缩放为 1(其自然默认大小),然后沿 x 轴平移 5 个单位,则该对象似乎向右移动 5 个单位。但是,如果将同一对象缩放为 2,则在 x 轴上平移 5 个单位将导致对象看起来向右移动 10 个单位。这是因为局部坐标系现在是大小的两倍,5 乘以 2 等于 10。相反,如果对象被缩放到 0.5 然后移动,它看起来只会移动 2.5 个单位 (.5 x 5 = 2.5)

我尝试过这两种效果,但没有成功。对于翻译,我可以在它之后应用任何更改。而对于Scaling,它以乘法的方式缩放局部坐标系,但它没有乘以平移的影响。是我理解错了还是书的问题?

【问题讨论】:

    标签: unity3d transformation


    【解决方案1】:

    平移(使用Transform.Translate 方法)意味着通过某个向量移动对象的变换。就那么简单。 局部尺度稍微复杂一些。它不仅可以缩放对象本身,还可以缩放作为它的子对象的所有对象。并且移动的距离是相对的——如果你有一个 1x1x1 大小的立方体并且你将它移动 1 个单位,它将移动它的整个长度。但是,如果您将其缩放 2 而不是将其移动 1 个单位,则它仅移动其大小的一半。

    根据你写的,这本书可能真的是学习 Unity3D 的糟糕资源。尝试做一些官方教程,它们非常好,并且很好地解释了基础知识。 This one 不错,this one 也不错。请记住,任何时候您对 Unity 有疑问。尝试先搜索他们非常好的文档。

    【讨论】:

    • 它实际上像你说的那样工作。感谢您的帮助和建议!我去看看教程
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    相关资源
    最近更新 更多