返回场景在构建设置中的索引。
Scene.buildIndex 的取值范围从零到 Scenes 在 Build Settings
中的数量减一。这是因为索引从零开始,因此第一个 Scene 在 buildIndex 中的位置为零。例如,Build Settings
中的五个 Scene 的索引范围为零到四。
Unity 会忽略 Scene
名称中的任何数字。例如,如果您将名为 scene15
的 Scene
添加到 Build Settings
中的五个 Scene 列表中,Unity 会将其 buildIndex 设置为 5。
未添加到“构建设置中的场景”窗口的 Scene
返回的 buildIndex 比列表中的最大值多 1。例如,如果您没有将 Scene
添加到已经包含 6 个场景的“构建设置中的场景”窗口中,则 Scene.buildIndex 会返回 6 作为其索引。
如果场景通过 AssetBundle
加载,则 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); } } }