---
# System prepended metadata

title: Unity scene
tags: [unity]

---

# Unity scene
掉落重來(完全重置)
GetActiveScene()方法會回傳現在被載入的scene物件。
buildIndex是scene的索引值。第一個scene編號是0,跟陣列一樣。
```C#=
public float threshold =-30f;
void Update()
    {
        if(transform.position.y<threshold)
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);//掉下去的話會重新開始
        }
    }
```
原本的寫法是
```C#=
  SceneManager.LoadScene(sceneNumber);//sceneNumber為目前scene的buildIndex
```

載入下一個scene
```C#=
 SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
``` 
Scene增加可讀性的寫法
```C#=
 private void Reset()
    {
        int CurrentSceneIndex = SceneManager.GetActiveScene().buildIndex;
        SceneManager.LoadScene(CurrentSceneIndex);
        // SceneManager.LoadScene(0);現在房間是0
    }
    private void NextLevel()
    {
        int CurrentSceneIndex = SceneManager.GetActiveScene().buildIndex;
        int NextSceneIndex = CurrentSceneIndex + 1;
        if(NextSceneIndex==SceneManager.sceneCountInBuildSettings)
        {
            NextSceneIndex = 0;//回到一開始的scene 同時不用洗成SceneManager.LoadScene(0)
        }
        SceneManager.LoadScene(NextSceneIndex);
       
    }
```
###### tags: `unity`