【发布时间】:2019-08-09 19:03:27
【问题描述】:
我想在我用 swift 编写的 Scenekit 游戏中检测 SCNNode 何时停止移动。
我有一个地板,有一个节点通过重力落向它。节点撞到地板,弹跳,然后着陆并固定在静止位置。
我需要添加一个函数来监视 SCNNode 并在休息时做一些事情。
在最终游戏中,我将有不同的 SCNNodes 以不同的速度下降,因此需要一个仅依赖于查看节点运动而不是等待设定时间的函数。
scenekit 中是否有内置的东西可以使用? 如果没有的话,是否可以使用某种形式的计时器每半秒调用一次函数?我将如何设置计时器以及如何检查 SCNNode 以查看它是否已停止移动?
编辑:
正如所指出的,我的问题与SceneKit SCNPhysicsBody get notified of resting 相同。那个提问者虽然使用的是 obj-c,而我使用的是 swift。我发现这里评论中的答案似乎要好得多,并且对我有用。
【问题讨论】:
-
该链接答案的替代方案是实现
SCNSceneRendererDelegate方法之一并检查节点的速度是否接近于零。