說明:本人使用的 unity 版本爲 2017.2.0f3。原文發佈在 我的notes
很多時候我們會需要在遊戲結束,重新開始的時候,從當前狀態回到場景初始狀態。下面一步步講解。
- 首先使用 UnityEngine.SceneManagement 命名空間,方便調用
using UnityEngine.SceneManagement
- 通過使用
LoadScene
方法加載一個新的場景。可傳入場景名稱/路徑
或sceneBuildIndex
。LoadScene
還有第二個參數mode
,選擇加載模式,默認爲single
。mode
有Single
和Additive
兩種。Single
模式下,會關閉當前所有場景並加載需要的場景。Additive
模式下,會把需要加載的場景直接添加到當前場景中。
// 通過 sceneName,比如我有個名爲 Main 的場景
SceneManager.LoadScene("Main");
// 通過 sceneBuildIndex,這裏通過 scene 的 buildIndex 屬性來取得 sceneBuildIndex
// 當前場景爲 Main,我需要重新載入它,通過 GetActiveScene 方法來獲取當前活躍的場景
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
- 使用
LoadScene
的時候,場景的加載不會立即完成,會在下一幀的時候完成。這種非異步的方式可能會造成場景的混亂或者其他令人困惑的問題。所以建議使用異步的方式,使用LoadSceneAsync
方法代替LoadScene
。使用方式與LoadScene
一樣,該方法會在後臺異步加載場景。