如何防止 SceneKit 动画在加载时立即播放?
Posted
技术标签:
【中文标题】如何防止 SceneKit 动画在加载时立即播放?【英文标题】:How do you prevent SceneKit animations from playing immediately on load? 【发布时间】:2021-12-03 06:53:11 【问题描述】:我正在从 .usdz 文件加载 3d 模型,默认情况下,动画在加载完成后立即播放和循环:
let modelURL = Bundle.main.url(forResource: "model", withExtension: "usdz")!
let scene = try! SCNScene(url: modelURL, options: nil)
let view = SCNView(frame: CGRect(x: 0,
y: 0,
width: 500,
height: 500))
view.scene = scene
PlaygroundPage.current.liveView = view
我想阻止它在加载时播放动画。
【问题讨论】:
【参考方案1】:您需要将带有 SCNSceneSource.AnimationImportPolicy
键的值传递给 SCNScene init(url:options:)
初始值设定项的 options 参数:
let doNotPlay = SCNSceneSource.AnimationImportPolicy.doNotPlay
let scene = try! SCNScene(url: modelURL, options: nil)
options: [.animationImportPolicy: doNotPlay])
文档中SCNSceneSource.AnimationImportPolicy
的选项列表是here
【讨论】:
以上是关于如何防止 SceneKit 动画在加载时立即播放?的主要内容,如果未能解决你的问题,请参考以下文章
SceneKit - 如何知道带有 MDLObject 的 SCNNode 是不是已加载并可见?