# 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`
{"metaMigratedAt":"2023-06-17T22:37:56.614Z","metaMigratedFrom":"Content","title":"Unity scene","breaks":true,"contributors":"[{\"id\":\"9be48535-8f15-404d-8fdb-b01990d37456\",\"add\":1146,\"del\":5}]"}