Unity场景的加载与卸载
Unity场景的加载与卸载
使用方法:把SceneLoader 脚本代码挂在场景中
使用示例:
SceneLoader.Instance.LoadAdditiveScene(8);//通过场景索引加载SceneLoader.Instance.UnloadScene("ShiWaiScene");//通过场景名字卸载
脚本代码如下:
using UnityEngine;
using UnityEngine.SceneManagement;
//Created by HMCK_zek、AgilityBaby
public class SceneLoader : MonoBehaviour
{public static SceneLoader Instance;public void Awake(){Instance = this;}// 加载新场景并保留当前场景(场景索引)public void LoadAdditiveScene(int sceneName){SceneManager.LoadScene(sceneName, LoadSceneMode.Additive);}// 加载新场景并保留当前场景(场景名字)public void LoadAdditiveScene2(string sceneName){SceneManager.LoadScene(sceneName, LoadSceneMode.Additive);}// 卸载指定叠加场景(场景名字)public void UnloadScene(string sceneName){StartCoroutine(UnloadSceneAsync(sceneName));}// 协程private System.Collections.IEnumerator UnloadSceneAsync(string sceneName){AsyncOperation asyncUnload = SceneManager.UnloadSceneAsync(sceneName);while (!asyncUnload.isDone){yield return null;}Debug.Log("场景卸载完成");}
}