gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 13:47:25 25 4
gpt4 key购买 nike

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

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

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

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

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

编辑:

如前所述,我的问题与 SceneKit SCNPhysicsBody get notified of resting 相同.那个提问者虽然使用的是 obj-c,但我使用的是 swift。我发现此处评论中的答案似乎好多了并且对我有用。

最佳答案

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

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

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

关于ios - 如何检测 SCNNode 何时停止移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55237843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com