Unity中的場景切換

Unity中的場景切換

  • 與電影類似,一個遊戲往往需要多個場景。而如果場景中資源較少,那麼可以很快的完成切換,如果較多的話,可能需要十幾秒時間。在這段時間內播放加載動畫等等,可以減少玩家的不耐煩。

同步切換場景

  • Application.LoadLevel()
  • Application.LoadLevelAdditive()加載完成後保留舊場景中資源

異步切換場景

  • Application.LoadLevelAsync()異步加載場景,加載過程中當前場景不會卡死。返回值包含加載進度
  • 代碼示例:

    public class test : MonoBehaviour {

        private AsyncOperation async;
        void Start () {
            Debug.Log(Time.time);
            StartCoroutine("Switch");
        }
    
        void Update () {
            Debug.Log(async.progress);
        }
    
        IEnumerator Switch()
        {
            async = Application.LoadLevelAsync("LoadingScene");
            yield return async;
    
        }
    }
    
  • Application.LoadLevelAdditiveAsync加載新場景完成後不釋放舊資源

  • 通常做場景切換時,首先切換到一個較小的loading動畫場景,之後異步加載新場景

無縫場景切換

  • 場景管理對象需要一直存在:Object.DontDestroyOnLoad()可以防止切換場景時銷燬
  • 異步加載新資源,並逐步銷燬舊資源
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章