Ios 无法从.scn文件加载ARKit中的动画
我正在使用以下代码加载.scn文件中包含的模型(包括一个动画):Ios 无法从.scn文件加载ARKit中的动画,ios,animation,scenekit,arkit,caanimation,Ios,Animation,Scenekit,Arkit,Caanimation,我正在使用以下代码加载.scn文件中包含的模型(包括一个动画): // Recursively load all scene's nodes let scene = try! SCNScene(url: sceneFileURL, options: nil) self.modelNode = SCNNode() let nodeArray = scene.rootNode.childNodes for childNode in nodeArray { self.modelNode?.a
// Recursively load all scene's nodes
let scene = try! SCNScene(url: sceneFileURL, options: nil)
self.modelNode = SCNNode()
let nodeArray = scene.rootNode.childNodes
for childNode in nodeArray {
self.modelNode?.addChildNode(childNode as SCNNode)
}
我正在尝试在应用程序的其他部分加载动画。我首先创建sceneSource对象
self.sceneSource = SCNSceneSource(url: sceneFileURL, options: [SCNSceneSource.LoadingOption.animationImportPolicy : SCNSceneSource.AnimationImportPolicy.playRepeatedly])
然后我寻找动画
for child in modelNode.childNodes {
for key in child.animationKeys {
print("add animation:\(key)")
let animation = self.sceneSource?.entryWithIdentifier(key, withClass: CAAnimation.self)
//child.addAnimation(animation!, forKey: key)
animation?.repeatCount = 10
sceneView.scene.rootNode.addAnimation(animation!, forKey: key)
}
}
一些调试信息:
1) 循环可以正确找到动画关键点(它将被打印)
2) SceneSource
已正确初始化
问题:entryWithIdentifier
返回nil,因此无法加载动画
for child in modelNode.childNodes {
for key in child.animationKeys {
print("add animation:\(key)")
let animation = self.sceneSource?.entryWithIdentifier(key, withClass: CAAnimation.self)
//child.addAnimation(animation!, forKey: key)
animation?.repeatCount = 10
sceneView.scene.rootNode.addAnimation(animation!, forKey: key)
}
}
注意:如果我使用addAnimation:ForKey
(目前已弃用,因此我会避免使用),我会得到一个动画对象,但一旦添加到子注释中,它对ARKit中渲染的模型没有影响
这里提供的型号:您找到解决方案了吗?这里也有同样的问题。你找到解决办法了吗?