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("场景卸载完成");
}
}