我想在运行时在SceneKit中动态加载Collada文件。我使用了copySceneKitAssetst生成.DAE文件并将其放入我的服务器。该应用程序可以从服务器下载并使用此文件初始化SCNScene(请参阅http://www.the-nerd.be/2014/11/07/dynamically-load-collada-files-in-scenekit-at-runtime/)。
执行“./copySceneKitAssets”时没有错误,并且可以正确呈现模型。在将gameScene设置为scnView.scene之前,我已调用[scnView prepareObject:gameScene shouldAbortBlock:NULL]
。
问题是scnView第一次呈现gameScene,它非常慢(几秒钟)。甚至主线程在此期间被阻止,这意味着UI无法刷新,有时候应用程序被iOS杀死。从第二次呈现场景时,它非常快,主线程运行良好。但是如果我们删除应用程序和重新安装它,问题再次出现。
感谢任何帮助。
答案 0 :(得分:2)
我认为prepareObjects(_:withCompletionHandler)
(在SCNSceneRenderer上定义)值得一看。它在后台线程上加载资源。