【发布时间】:2018-08-06 11:19:11
【问题描述】:
好的,所以我从服务器下载了一个对象并将其转换为场景,但是当我在真实空间中显示它时,它的 y 位置似乎偏离了。它应该是 0,0,0(x,y,z)。(见图)
有点难看,但那是牛的腿,应该放在桌子上。当我下载对象,将其导入我的项目并使用 Xcode 将其转换为场景时,我注意到 y 的物理属性为 -9,x 和 z 均为 0。如何以编程方式更改 y?我已经将图像中的 y 更改为 0。之前是 -9。 见下图。
【问题讨论】:
好的,所以我从服务器下载了一个对象并将其转换为场景,但是当我在真实空间中显示它时,它的 y 位置似乎偏离了。它应该是 0,0,0(x,y,z)。(见图)
有点难看,但那是牛的腿,应该放在桌子上。当我下载对象,将其导入我的项目并使用 Xcode 将其转换为场景时,我注意到 y 的物理属性为 -9,x 和 z 均为 0。如何以编程方式更改 y?我已经将图像中的 y 更改为 0。之前是 -9。 见下图。
【问题讨论】:
查看模型,看起来它实际上是导致问题的关键。
您可以使用 SCNNode 的 pivot 属性更改奶牛的轴心。
您可以使用 SCNMatrix4MakeTranslation 进行更改,例如:
cow.pivot = SCNMatrix4MakeTranslation(0,0,0)
这可能会解决问题:
//1. Get The Bounding Box Of The Node
let minimum = float3(nodeToAdd.boundingBox.min)
let maximum = float3(nodeToAdd.boundingBox.max)
//2. Set The Translation To Be Half Way Between The Vector
let translation = (maximum - minimum) * 0.5
//3. Set The Pivot
nodeToAdd.pivot = SCNMatrix4MakeTranslation(translation.x, translation.y, translation.z)
【讨论】: