如何检测 SCNNode 何时停止移动?

尼克·麦克洛伊

我想检测 SCNNode 何时停止在我用 swift 编写的 Scenekit 游戏中移动。

我有一个地板,有一个节点因重力而落向它。节点撞击地板,弹起,然后降落并固定在一个固定位置。

我需要添加一个函数来监视 SCNNode 并在休息时做一些事情。

在最终游戏中,我将有不同的 SCNNodes 以不同的速度下降,因此需要一个仅依赖于观察节点运动而不是等待设定时间的函数。

是否有任何内置于 Scenekit 的东西可以使用?如果没有,无论如何使用某种形式的计时器每半秒调用一个函数?我将如何设置计时器以及如何检查 SCNNode 以查看它是否已停止移动?

编辑:

正如所指出的那样,我的问题与SceneKit SCNPhysicsBody 得到 resting 的通知相同那个提问者虽然使用的是 obj-c,但我使用的是 swift。我发现这里评论中的答案似乎好多了,对我有用。

尼克·麦克洛伊

James P 的评论为我解决了这个问题。

使用SCNSceneRendererDelegate手段我可以在每个渲染周期重复运行代码以检查节点是否已停止移动。

然后我遇到了这个问题SceneKit: isResting 从不返回 trueisResting 总是错误的。获得我需要的唯一方法是使用Int(SCNNode.physicsBody?.velocity.z),当它为零时,我的节点完全放在地板上

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使SCNNode位置动画以均匀的速度移动?

来自分类Dev

如何检测鼠标何时停止

来自分类Dev

如何知道推送视图何时停止移动。UIKit动态

来自分类Dev

如何知道推入的视图何时停止移动。UIKit动态

来自分类Dev

检测JPanel何时移动

来自分类Dev

检测AvPlayer何时停止

来自分类Dev

MouseHook检测鼠标何时移动

来自分类Dev

如何检测用户何时完成在Swift中移动范围滑块

来自分类Dev

检测ScrollViewer何时停止滚动

来自分类Dev

相对于根节点移动SCNNode

来自分类Dev

将 SCNNode 或 UIView 添加到 SCNView 的中心以检测其他 SCNNode

来自分类Dev

如何在 ARKit 中对 SCNNode 施加力?

来自分类Dev

如何检测何时savehtml失败?

来自分类Dev

如何检测何时加载内容?

来自分类Dev

如何检测何时收到通知

来自分类Dev

如何检测何时savehtml失败?

来自分类Dev

如何检测何时删除文本

来自分类Dev

检测用户何时停止触摸UIButton

来自分类Dev

检测用户何时停止触摸屏幕

来自分类Dev

网站如何检测移动设备?

来自分类Dev

使用手势在ARSCNView中移动SCNNode

来自分类Dev

管道如何知道何时停止

来自分类Dev

Azure管道如何在脚本等待用户输入时检测管道何时停止

来自分类Dev

确定鼠标何时停止移动

来自分类Dev

Android检测用户是否停止移动

来自分类Dev

Android检测用户是否停止移动

来自分类Dev

如何检测用户何时更换键盘?

来自分类Dev

如何检测QLabel中的文本何时更改?

来自分类Dev

如何检测AVPlayerItem何时播放完毕?