ios - usdz 文件的 SCNSceneSource 标识符为空

标签 ios swift animation scenekit usdz

我们正在使用 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 中查看文件时动画播放效果很好,我们可以在其中访问动画和场景图设置:

Xcode animation

但绝对不是来自运行时的代码,因此我们无法控制动画。

你遇到过这个问题吗?

对此有何见解?

最佳答案

SCNSceneSource 中检索条目仅适用于 Collada 文件。使用 USDZ 文件时,您必须遍历节点层次结构并使用 -animationPlayerForKey: 从保存它的节点检索动画。 .

关于ios - usdz 文件的 SCNSceneSource 标识符为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53400057/

相关文章:

ios - SecItemUpdate() 不断返回 errSecParam,我不明白为什么

ios - 当我想在 objective c 项目中使用 swift 文件时使用未声明的标识符

ios - 使用 popToRootViewController 进行旋转

objective-c - 简单的 addObject 到 NSMutableArray 方法给出 lldb 错误

ios - 在 Swift 4/Xcode 9 : AVF context unavailable for sharedAudioPresentationContext 中从 url 播放视频文件

ios - 在 iOS 10 中使用适当大小的本地化单位

ios - UIView 动画无法正常工作

android - 根据屏幕宽度制作android Translate动画

javascript - jquery:一键单击两个 animate() 函数。延迟()问题?

iphone - CoreAudio 音频单元只播放一个声道的立体声音频