Komponenter

Alla spelobjekt i Unity bestÄr av ett antal komponenter. Varje komponent Àr en instans av en komponentklass, och alla komponentklasser har olika inbyggda variabler och metoder som ger komponenten och spelobjektet funktionalitet.

NÄgra exempel pÄ vanliga komponenter:

  • Transform: Alla spelobjekt har en Transform-komponent som talar om objektets position, rotation och skalning.

  • Colliders: Finns i olika varianter (box, sphere etc) och Ă€r olika för 2d och 3d-fysik (t.ex. BoxCollider2D). Funkar som hit boxes; ger en enkel volym eller 2d-yta som anvĂ€nds för att kĂ€nna av kollisioner. Colliders kan göras till triggers och pĂ„verkar dĂ„ inte varandra i fysikmotorn; annars anvĂ€nds colliders för att göra sĂ„ saker kan hindra varandras förflyttning som fysiska objekt.

  • RigidBody, RigidBody2D: AnvĂ€nds för att tala om för fysikmotorn att objektet ska omfattas av fysiksimuleringen – man kan t.ex. ange objektets massa och via kod addera kraft i valfri riktning med hjĂ€lp av objektets rigidbody-komponent.

  • MeshRenderer, SpriteRenderer: AnvĂ€nds för att ge objektet ett utseende – MeshRenderer anvĂ€nder en 3d-modell som renderas ut pĂ„ skĂ€rmen medan SpriteRenderer anvĂ€nder en 2d-bild.

Scriptkomponenter

I princip all kod som skrivs i Unityprojekt skrivs i script-komponenter. För att scriptkomponentens kod ska köras behöver normalt sett komponenten sitta pÄ ett spelobjekt som Àr aktivt i scenen.

För att skapa en scriptkomponent:

  • Högerklicka i Assets och vĂ€lj Create → C# Script eller

  • Klicka pĂ„ Add Component lĂ€ngst ner i Inspectorn pĂ„ ett spelobjekt.

Normalt sett Àrver alla scriptkomponenter frÄn MonoBehavior.

GetComponent<>()

HÀmtar första bÀsta komponent av angiven typ. Returnerar null om det inte finns nÄgon.

void Start()
{
  Transform tForm = this.GetComponent<Transform>();
  Rigidbody2D rigidBody = this.GetComponent<Rigidbody2D>();
}

TryGetComponent<>()

void Start()
{
  if (this.GetComponent<Rigidbody2D>(out RigidBody2D rigidBody)
  {
    // Gör nÄgot med rigidBody
  }
}

Komponentmenyn

  • Reset Ă„terstĂ€ller komponenten till dess utgĂ„nglĂ€ge. För en Transform-komponent betyder det till exempel att position och rotationsvĂ€rdena blir 0 och skalningsvördena blir 1.

  • Copy Component kopierar komponenten till minnet.

  • Paste Component As New lĂ€gger in en ny kopia av komponenten i minnet till spelobjektet.

  • Paste Component As Values fungerar bara om komponenten i minnet Ă€r av samma typ som den vars meny klickades pĂ„. DĂ„ Ă€ndras den klickade komponentens vĂ€rden till att bli samma som komponenten i minnets.

Presets

Detta Àr anvÀndbar nÀr man vill kunna ÄteranvÀnda en komponents variabelvÀrden till andra, framtida objekt som har samma komponent.

Last updated