常用API

  1. SceneManager.LoadScene(string sceneName)
    • 加载名为 sceneName 的场景。
  2. SceneManager.LoadScene(int sceneBuildIndex)
    • 根据场景在Build设置中的索引加载场景。
  3. SceneManager.GetActiveScene()
    • 获取当前活动的场景。
  4. SceneManager.GetSceneByName(string name)
    • 根据名称查找场景。
  5. SceneManager.GetSceneAt(int index)
    • 根据索引获取场景。
  6. SceneManager.sceneCount
    • 获取当前加载的场景数量。
  7. SceneManager.UnloadSceneAsync(string sceneName)
    • 异步卸载名为 sceneName 的场景。
  8. 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);  
        }  
    }  
}

 

Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐