2015-08-21 52 views
2

我正在製作一個場景套件應用程序,它確實工作得非常好。我唯一的煩惱是加載後短暫的一秒,我的SCNView對象是完全空白的。我認爲這是因爲場景還沒有加載或渲染,但我想盡可能避免它。使用SceneKit避免這個簡短的'空屏幕'

我試着在SCNView前放置一個模擬應用程序加載屏幕的遮罩視圖,並在渲染開始使用渲染器後淡出它:didRenderScene:atTime但是很可惜,淡出遮罩視圖的動畫不會發生(它只是立即閃爍,而不是消失)。所以我把屏蔽視圖放在應用程序的主窗口中作爲一個實驗,並給它一個短暫的延遲。然而,即使在刪除該掩碼之前的延遲,在場景出現之前,SCNView仍然完全是空白的。

誰能告訴我如何避免這個令人討厭的圖形工件?

+0

它在iOS或OS X上嗎?你什麼時候設置SCNView的場景? (viewWillAppear/awakeFromNib ...) – Toyos

+0

沒關係,我找到了問題。令人討厭的是我已經知道這個方法,但不知道它可以適用於整個場景!感謝您的切入! – Ash

回答

6

像往常一樣,有一個簡單的修復,我只是找不到直到現在。完成場景設置後,只需執行:

sceneView.prepareObject(scene, shouldAbortBlock:nil) 

...和賓果!沒有延遲。這是由於場景,像SCNView中的所有對象,都是延遲加載的。調用prepareObject可以讓你提前緩存它們。

+0

非常感謝你!!!!! –

+0

謝謝,我用這個討厭的小東西丟了幾個小時。 –

相關問題