Klassvariabler: Variabler med flera undervariabler i enhet

I Unity är det enkelt att skapa variabler:

public int someValue = 1;

Variabeln ovan kommer att visas så här i inspektörsvyn:

Men vad händer om du vill ha flera delvariabler i en enda variabel? Det är lätt att uppnå med klassvariablerna.

Klassvariabler är variabler som använder en annan klass som bastyp, vilket ger möjligheten att ha flera undervariabler i en grupp.

Det görs genom att använda en klass med attributet [System.Serializable].

Kontrollera koden nedan:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SC_ClassVariables : MonoBehaviour
{
    [System.Serializable]
    public class VariableGroup
    {
        public Transform t;
        public int someValue = 1;
        public bool someBool = false;
    }

    public VariableGroup variableGroup;
}
  • Skriptet ovan definierar en klass som heter VariableGroup
  • Klassen VariableGroup innehåller flera undervariabler
  • Notera [System.Serializable] före klassen. Det här attributet behövs för att kunna redigera dess variabler i inspektörsvyn.
  • Och slutligen definieras variabeln variableGroup, som använder klassen VariableGroup.

Klassvärdena nås genom att anropa variabelnamnet följt av en punkt och sedan namnet på den underordnade variabeln:

variableGroup.t
variableGroup.someValue
variableGroup.someBool

Klassen ovan kan också användas i en array:

public VariableGroup[] variableGroup;