我们正在使用 ARKit 2 + SceneKit,iOS 12 开发一个项目。
我们能够使用 .dae
文件检索 CAAnimation
实例并在运行时控制它们。
现在,我们正在尝试 .usdz
,但是没有一个类可以使用 usdz 从 SCNSceneSource
中提取:
let source = SCNSceneSource(url: url, options: options)
let animationIdentifiers = source?.identifiersOfEntries(withClass: CAAnimation.self)
animationIdentifiers
始终为空。对于此函数的文档中列出的所有类也是如此 https://developer.apple.com/documentation/scenekit/scnscenesource/1523656-identifiersofentries
我们已经测试了我们自己的 usdz 创作以及来自 https://fusionar.app 的一些 usdz .
不过,在 iOS 或 Xcode 中查看文件时动画播放效果很好,我们可以在其中访问动画和场景图设置:
但绝对不是来自运行时的代码,因此我们无法控制动画。
你遇到过这个问题吗?
对此有何见解?
最佳答案
从 SCNSceneSource
中检索条目仅适用于 Collada 文件。使用 USDZ 文件时,您必须遍历节点层次结构并使用 -animationPlayerForKey:
从保存它的节点检索动画。 .
关于ios - usdz 文件的 SCNSceneSource 标识符为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53400057/