我有一个从SCNScene中提取的节点。我有一些关于它的信息,但我对一件事感到困惑--边界框是如何计算的。一旦将节点加载到向量0,0,0,0,0,该节点将被定位,使用:
[myNode setPosition: SCNVector3Make(0, 0, 0)];但是,边界框仍然报告min.x为-1。
如果我刚刚把它定位在0,这怎么可能呢?此外,我给出的向量值并不重要,它总是有min.x值-1 -尽管节点实际上按预期在屏幕周围移动。
发布于 2015-02-06 18:59:10
如果没有更多关于场景中的内容以及您正在做什么的信息,就很难做出明确的回答,但这可能是其中的一个或两个问题:
边界框告诉您节点内容的范围,而不是它的位置--例如,如果您有一个宽为(0, 0, 0)的立方体2单元,则其边界框min和最大角将是(-1, -1, -1)和(1, 1, 1)。
根据您在移动节点时使用的技巧,节点本身可能不会改变位置-- SCNActions、CAAnimations和物理学--所有这些都是在节点层次结构的单独副本上工作的。(这在一定程度上是为了支持隐式动画--例如设置节点的position,它似乎从当前位置动画到所设置的位置,但仍然可以读取position并将其设置为该值。)
您将使用节点的presentationNode属性进入这个单独的层次结构--询问表示节点的边界框,您将看到它的位置/范围受操作/动画/物理的影响,并且当前呈现。
https://stackoverflow.com/questions/28371683
复制相似问题