版本: Unity 6 (6000.0)
语言英语
  • C#

SceneManagerAPI

UnityEngine.SceneManagement 中的类

/

实现于:UnityEngine.CoreModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议的更改,并在适用时进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

从这个基类派生以提供对特定 SceneManager 方法的 C# 行为的替代实现。

提供的示例记录场景是否通过索引加载,并记录一条警告以切换到通过场景路径加载。

using UnityEngine;
using Debug = UnityEngine.Debug;
using UnityEngine.SceneManagement;

public class SceneIndexLogger : SceneManagerAPI { [RuntimeInitializeOnLoadMethod] static void OnRuntimeMethodLoad() { SceneManagerAPI.overrideAPI = new SceneIndexLogger(); }

protected override int GetNumScenesInBuildSettings() { Debug.LogWarning("SceneManager.GetNumScenesInBuildSettings() called, please load scenes by path to avoid issues when scenes are reordered."); return base.GetNumScenesInBuildSettings(); }

protected override Scene GetSceneByBuildIndex(int buildIndex) { Debug.Log($"SceneManager.GetSceneByBuildIndex(buildIndex = {buildIndex}) called, please load scenes by path to avoid issues when scenes are reordered."); return base.GetSceneByBuildIndex(buildIndex); } }

静态属性

overrideAPI用于处理覆盖的 SceneManager 方法的特定 SceneManagerAPI 实例。

受保护的方法

GetNumScenesInBuildSettings覆盖以自定义 SceneManager.sceneCountInBuildSettings 函数的行为。
GetSceneByBuildIndex覆盖以自定义 SceneManager.GetSceneByBuildIndex 函数的行为。
LoadFirstScene覆盖以自定义在存根播放器构建中加载第一个场景的行为。
LoadSceneAsyncByNameOrIndex覆盖以自定义 SceneManager.LoadScene 和 SceneManager.LoadSceneAsync 函数的行为。
UnloadSceneAsyncByNameOrIndex覆盖以自定义 SceneManager.UnloadSceneAsync 函数的行为。