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".

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:

using UnityEngine;
using UnityEngine.SceneManagement;

LoadScene()

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

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.

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.

[SerializeField]
Scene nextScene;

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

Last updated