unity3D 中经常会遇到绝对坐标与相对坐标的问题,现在我来举个例子,通过例子来说明情况:
例子描述:
先建立一个黄色的立方体,他的属性如下图:
再建立一个子的立方体,他的属性如下(默认的 scale 是(1,1,1)我们为了后面的解释做了修改):
将其拖到黄色立方体上,使之成为黄色立方体的子立方体,其属性改变为下图:
然后我们输出他们的 transform.position
我们观察到只有 Z 轴的坐标不同,其余一样,并且数值与黄色的立方体的坐标一致,我们可以推断 inspecter 显示的坐
标值是:parent 的坐标为绝对坐标,其子立方体坐标为相对坐标。那如何通过这些值来计算子立方体的绝对坐标呢?
为此我们先了解 parent 与他的 children 的关系:
上面的图可以看到黄色立方体(parent)的 scale 是(10,10,10),子立方体开始为(4,4,4),拖动后成为
(0.4,0.4,0.4),可见其 scale 也是相对大小。由此我们可以猜测 position 是否也是相对的呢?
我们来验证一下:
首先根据这个例子,我们根据猜测来计算一下子立方体的 Z 轴坐标(x,y 类似)
408=398+10*1,这是符合的,我们在来修改自立方体的相对坐标,如下图:
- 1
- 2
- 3
- 4
- 5
- 6
前往页