Klassevariable: Variabler med flere undervariabler i enhed

I Unity er det simpelt at oprette variabler:

public int someValue = 1;

Variablen ovenfor vil blive vist sådan i Inspector-visningen:

Men hvad hvis du vil have flere undervariabler i en enkelt variabel? Det er nemt at opnå med klassevariablerne.

Klassevariabler er variabler, der bruger en anden klasse som basistype, hvilket giver mulighed for at have flere undervariabler i én gruppe.

Det gøres ved at bruge en klasse med attributten [System.Serializable].

Tjek nedenstående kode:

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;
}
  • Scriptet ovenfor definerer en klasse kaldet VariableGroup
  • Klassen VariableGroup indeholder flere undervariabler
  • Bemærk [System.Serializable] før klassen. Denne attribut er nødvendig for at kunne redigere dens variabler i inspektørvisningen.
  • Og til sidst er variablen variableGroup defineret, som bruger VariableGroup-klassen.

Klasseværdierne tilgås ved at kalde variabelnavnet efterfulgt af en prik og derefter navnet på den underordnede variabel:

variableGroup.t
variableGroup.someValue
variableGroup.someBool

Klassen ovenfor kan også bruges i et array:

public VariableGroup[] variableGroup;