unity3d————场景管理类SceneManager
【代码】unity3d————场景管理类SceneManager。
·
常用API
SceneManager.LoadScene(string sceneName)- 加载名为
sceneName的场景。
- 加载名为
SceneManager.LoadScene(int sceneBuildIndex)- 根据场景在Build设置中的索引加载场景。
SceneManager.GetActiveScene()- 获取当前活动的场景。
SceneManager.GetSceneByName(string name)- 根据名称查找场景。
SceneManager.GetSceneAt(int index)- 根据索引获取场景。
SceneManager.sceneCount- 获取当前加载的场景数量。
SceneManager.UnloadSceneAsync(string sceneName)- 异步卸载名为
sceneName的场景。
- 异步卸载名为
SceneManager.UnloadScene(string sceneName)- 同步卸载名为
sceneName的场景(不推荐使用,因为它可能会导致帧卡顿)。
- 同步卸载名为
示范代码
以下是一些使用 SceneManager API 的示范代码:
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneManagerExample : MonoBehaviour
{
// 加载名为 "GameScene" 的场景
public void LoadGameScene()
{
SceneManager.LoadScene("GameScene");
}
// 根据索引加载场景,假设索引为1的场景是 "GameScene"
public void LoadGameSceneByIndex()
{
SceneManager.LoadScene(1);
}
// 获取当前活动的场景名称并打印
public void PrintActiveSceneName()
{
Scene activeScene = SceneManager.GetActiveScene();
Debug.Log("Active Scene: " + activeScene.name);
}
// 异步卸载名为 "GameScene" 的场景
public void UnloadGameSceneAsync()
{
AsyncOperation asyncUnload = SceneManager.UnloadSceneAsync("GameScene");
if (asyncUnload != null)
{
Debug.Log("Unloading GameScene...");
}
}
// 检查场景是否已加载,并打印场景数量
public void CheckLoadedScenes()
{
int loadedSceneCount = SceneManager.sceneCount;
Debug.Log("Loaded Scenes: " + loadedSceneCount);
for (int i = 0; i < loadedSceneCount; i++)
{
Scene scene = SceneManager.GetSceneAt(i);
Debug.Log("Scene " + i + ": " + scene.name);
}
}
}
更多推荐



所有评论(0)