返回 Build Settings 中场景的索引。
Scene.buildIndex 的值范围是零到 Build Settings
中 Scene 的数量减一。这是因为索引从零开始,所以第一个 Scene 在 buildIndex 中位于位置零。例如,Build Settings
中五个 Scene 的索引是从零到四。
Unity 将忽略 Scene
名称中的任何数字。例如,如果您将名为 scene15
的 Scene
添加到 Build Settings
中五个 Scene 的列表中,则 Unity 将为该场景提供的 buildIndex 值为 5。
未添加到 Scenes in Build
窗口的 Scene
返回的 buildIndex 值比列表中的最大值大 1。例如,如果没有将 Scene
添加到已经包含 6 个场景的 Scenes in Build
窗口,则 Scene.buildIndex 将返回 6 作为其索引。
如果通过 AssetBundle
加载 Scene
,则 Scene.buildIndex 返回 -1。
using UnityEngine; using UnityEngine.SceneManagement;
// Show the buildIndex for the current script. // // The Build Settings window shows 5 added Scenes. These have buildIndex values from // 0 to 4. Each Scene has a version of this script applied. // // In the Project, create 5 Scenes called scene1, scene2, scene3, scene4 and scene5. // In each Scene add an empty GameObject and attach this script to it. // // Each Scene randomly switches to a different Scene when the button is clicked.
public class ExampleScript : MonoBehaviour { Scene scene;
void Start() { scene = SceneManager.GetActiveScene(); Debug.Log("Active Scene name is: " + scene.name + "\nActive Scene index: " + scene.buildIndex); }
void OnGUI() { GUI.skin.button.fontSize = 20;
if (GUI.Button(new Rect(10, 80, 180, 60), "Change from scene " + scene.buildIndex)) { int nextSceneIndex = Random.Range(0, 4); SceneManager.LoadScene(nextSceneIndex, LoadSceneMode.Single); } } }