如何停止dae或scn文件中默认提供的动画?

问题描述 投票:0回答:3

今天我尝试在我的测试项目中加载不同的3D模型,发现有些对象是用动画烘焙的。因此,如果我将 .dae 文件转换为 .scn 文件,动画仍然可以在对象上运行,但我看不到禁用它的选项。

在某些情况下,在节点检查器中,我可以在动画部分看到一些动画,但有时我看不到它,所以不知道如何删除它。

如果默认情况下存在动画,如何停止它或完全删除 scn 文件中的动画?

ios animation scenekit
3个回答
0
投票

如果您想停止 dae 文件中的所有默认动画,您可以循环遍历文件中的所有动画并停止它。检查下面的代码。

for key in node.animationKeys where node.animationPlayer(forKey: key) != nil 
{
  let player = node.animationPlayer(forKey: key)
  player?.stop()
}

希望这会有所帮助!


0
投票

您可以通过两种不同的方式做到这一点: 1-加载时停止动画,但那将是在最后一帧

                for key in node.animationKeys where node.animationPlayer(forKey: key) != nil
                {
                    let player = node.animationPlayer(forKey: key)
                    player?.stop()
                }

2- 将速度降低到 0,以便动画将停止在第一帧

                for key in node.animationKeys where node.animationPlayer(forKey: key) != nil
                {
                    let player = node.animationPlayer(forKey: key)
                    player?.speed = 0
                }

所以您可以选择适合您的那一款。


0
投票

在看不到任何代码的情况下,您可以尝试从已有动画的 .dae 文件中删除动画的另一种选择是调用包含动画的节点

node.removeAllAnimations()
© www.soinside.com 2019 - 2024. All rights reserved.