2014年8月5日 星期二

Unity 5.x 多場景編輯功能(Multi Scene Editing)

作者:Steen Lund

雖然Unity 5.x週期會有許多令人興奮的功能釋出,但我們也仍然在改進現有的功能和工作流程,其中一塊就是我們的關卡管理和場景編輯.

在特別的情況下,有時我們需要將遊戲的關卡放在多個不同的場景(Scenes),可能是因為關卡很大或是你想要用串流的方式來載入關卡,也可能是因為想要用簡單點的方法讓不同的開發人員共同開發一個關卡而避免產生太多衝突。

不管你把關卡分成很多場景檔的理由是甚麼,你可能得寫一些編輯工具來支援你的場景,如果你是為了做串流,那你也許會需要一個在編輯器可以把多個場景排好成一個關卡的工具,或是你會需要再執行之前先把多個場景組合成為一個關卡的功能。

現在Unity在執行時已經可以支援用像是Application.LoadLevelAdditive這樣的API呼叫,可以一次載入多個場景,可惜的是UnloadLevel並不能有效地釋放,因此當你直接載入額外的資料,想要釋放乾淨必須要你自己做像是物件紀錄或結構化場景的資料來讓釋放能完全一點。

如果你對於這類問題很關切,我們向你介紹場景管理器 SceneManager ,這個管理器是一個新的API,用來管理執行週期的場景,他能管理場景裡的物件,讓開發者在釋放關卡時不需要擔心物件釋放問題。

載入一個額外的場景只要簡單的呼叫 SceneManager.LoadSceneAdditive(“場景名稱”),要釋放場景只需要呼叫 SceneManager.UnloadScene(“場景名稱”)

還有一些API用來處理新建立的物件要放在哪個場景,或是將物件在不同的場景間移動(層hierarchically (非場景空間) ,以及非同步載入API,這樣你就可以邊玩邊載入你的遊戲關卡。

在管理器的上面你可以依照需求為遊戲規劃關卡載入或串流,完全取決於你!

我們用場景管理器來規劃所謂的多場景編輯,這個功能允許你同時載入多個場景,看起來會像是影片這樣:


你可以很容易排好你的關卡及在不同的場景間移動物件,我們正在研究如何在多場景編輯中支援像是導航(navmesh), 光照貼圖(lightmap)和 遮擋剔除(occlusion culling)等功能,目標是讓這些功能可以一起運作順暢。

這個工作流程提升帶來的好處是,場景的編輯狀態將會被紀錄在還原系統(Undo System),這將會減少許多像是場景被標記為已編輯而重整,或沒有用過的場景被不斷的檢查等等的奇怪問題。

註: 這個功能將不會再5.0釋出,我們正努力趕工讓他在5.x週期內釋出

原文連結:
http://blogs.unity3d.com/2014/08/04/multi-scene-editing/

沒有留言:

張貼留言

著作人