我正在制作一个场景套件应用程序,它确实非常好用。我唯一的烦恼是加载后短暂的一秒,我的SCNView对象是完全空白的。我认为这是因为场景尚未加载或渲染,但我想尽可能避免使用它。
我尝试在SCNView前面放置一个掩盖应用程序加载屏幕的掩蔽视图,并在渲染开始使用渲染器后淡出它:didRenderScene:atTime但是唉,淡出掩蔽视图的动画不会发生(它只是立即闪烁而不是淡出)。因此,我将屏蔽视图作为实验放在应用程序的主窗口中,并给它一个短暂的延迟。但是,即使在删除该掩码之前有延迟,SCNView在场景出现之前仍然完全空白一瞬间。
有谁能告诉我如何避免这种恼人的图形文物?
答案 0 :(得分:6)
像往常一样,有一个简单的修复,我直到现在才找到。完成场景设置后,只需执行以下操作:
sceneView.prepareObject(scene, shouldAbortBlock:nil)
...和宾果游戏!没有延迟。这是因为场景,如SCNView中的所有对象,都是延迟加载的。调用prepareObject可以提前缓存它们。