首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SCNGeometry观察细节层次的关键值

使用SCNGeometry观察细节层次的关键值
EN

Stack Overflow用户
提问于 2019-09-04 02:49:24
回答 1查看 83关注 0票数 0

我尝试使用kvo来观察节点的几何形状,因为Scenekit不提供某种回调来让我知道节点的细节级别何时更新。这样做的目的是使我的节点具有空闲动画,并且当细节级别更改为除最详细版本以外的任何内容时,我希望从节点中删除动画,以避免运行不必要的空闲动画。

下面是观察设置。将细节层次添加到几何体的代码在其他地方,但它确实会运行,因为我可以看到随着节点像素半径的变化,几何体也会发生变化。

永远不会调用更改处理程序。相反,如果我观察节点的位置,当我将节点放置在场景中的位置时,会触发更改处理程序。是否有我应该监视的其他属性,或者是否有其他方法来确定某个节点已经更改了正在使用的细节级别,以便我可以从该节点中删除动画?

代码语言:javascript
复制
import SceneKit

class ObservableNode: SCNReferenceNode {

    private var geometryObservation: NSKeyValueObservation?

    override init?(url referenceURL: URL) {
        super.init(url: referenceURL)

        self.load()

        geometryObservation = observe(
            \.geometry,
            options: [.old, .new]
        ) { node, change in
            print("geometry did change")
        }
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-09-10 20:47:09

Matt和我在这个问题上一起工作,这是我们提出的解决方案:

https://stackoverflow.com/a/57871058/5978327

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57777256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档