# Scener

Varje scen är som ett dokument, som i sin tur innehåller alla objekt som hör ihop. En scen kan vara en skärm ("Game Over", "Settings") eller en level.

Från början finns bara en scen, "SampleScene", som ligger i mappen Scenes. Den kan man byta namn på om man vill.

För att skapa nya scener kan man högerklicka i Assets, välja Create och Scene.

## Scenordning

För att en scen ska komma med när spelet körs så behöver den läggas till i File → Build Settings. Scener som läggs till där kan man växla mellan under spelets gång, antingen via deras namn eller deras nummer. Numret står längst ut till höger i listan; scenen högst upp har nummer 0, nästa scen är nummer 1, och så vidare.

Man lägger till scener i listan genom att dra dem dit från Assets-fönstret eller genom att öppna en scen och klicka på "Add open scenes".

![](/files/-MMuCdaHRi7hjjsQKqsh)

Man kan byta ordning på scenerna genom att klicka och dra.

## SceneManagement

För att man ska kunna byta scen måste man importera SceneManagement-modulen i scriptet. Leta rätt på raden "using UnityEngine;" högst upp i scriptet och lägg till "using UnityEngine.SceneManagement;". Så här:

```csharp
using UnityEngine;
using UnityEngine.SceneManagement;
```

### LoadScene()

Laddar in en scen, definierad av sitt nummer i Build settings eller av sitt namn

```csharp
SceneManager.LoadScene(1);
SceneManager.LoadScene("Level1");
```

### GetActiveScene()

Returnerar den nuvarande scenen, som en instans av klassen Scene. Därifrån kan man läsa av scenens namn och build index, till exempel.

```csharp
Scene currentScene = SceneManager.GetActiveScene();

SceneManager.LoadScene(currentScene.name); // Startar om nuvarande scen
```

## Scene

Klassen Scene kan såklart också användas till variabler som t.ex. kan exponeras i Inspector, och då kan man göra så att de refererar till scener i Assets.

```csharp
[SerializeField]
Scene nextScene;

void OnCollisionEnter2D(Collision2D col)
{
  if (col.gameObject.tag == "finish")
  {
    SceneManager.LoadScene(nextScene.name);
  }
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://unity.progdocs.se/grundlaggande-koncept/scener.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
