今天我尝试在我的测试项目中加载不同的3D模型,发现有些对象是用动画烘焙的。因此,如果我将 .dae 文件转换为 .scn 文件,动画仍然可以在对象上运行,但我看不到禁用它的选项。
在某些情况下,在节点检查器中,我可以在动画部分看到一些动画,但有时我看不到它,所以不知道如何删除它。
如果默认情况下存在动画,如何停止它或完全删除 scn 文件中的动画?
如果您想停止 dae 文件中的所有默认动画,您可以循环遍历文件中的所有动画并停止它。检查下面的代码。
for key in node.animationKeys where node.animationPlayer(forKey: key) != nil
{
let player = node.animationPlayer(forKey: key)
player?.stop()
}
希望这会有所帮助!
您可以通过两种不同的方式做到这一点: 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
}
所以您可以选择适合您的那一款。
在看不到任何代码的情况下,您可以尝试从已有动画的 .dae 文件中删除动画的另一种选择是调用包含动画的节点
node.removeAllAnimations()