Klassevariabelen: variabelen met meerdere subvariabelen in eenheid

In Unity is het maken van variabelen eenvoudig:

public int someValue = 1;

De bovenstaande variabele wordt als volgt weergegeven in de Inspector-weergave:

Maar wat als u meerdere subvariabelen in één enkele variabele wilt hebben? Dat is eenvoudig te bereiken met de Klassevariabelen.

Klassevariabelen zijn variabelen die een andere klasse als basistype gebruiken, waardoor de mogelijkheid wordt geboden om meerdere subvariabelen in één groep te hebben.

Dit wordt gedaan door een klasse te gebruiken met het attribuut [System.Serializable].

Controleer de onderstaande code:

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;
}
  • Het bovenstaande script definieert een klasse met de naam VariableGroup
  • De klasse VariableGroup bevat meerdere subvariabelen
  • Let op de [System.Serializable] vóór de klasse. Dit attribuut is nodig om de variabelen ervan in de infovensterweergave te kunnen bewerken.
  • En ten slotte wordt de variabele variableGroup gedefinieerd, die de klasse VariableGroup gebruikt.

De klassewaarden zijn toegankelijk door de naam van de variabele aan te roepen, gevolgd door een punt en vervolgens de naam van de onderliggende variabele:

variableGroup.t
variableGroup.someValue
variableGroup.someBool

De bovenstaande klasse kan ook in een array worden gebruikt:

public VariableGroup[] variableGroup;

Voorgestelde artikelen
Inleiding tot Unity C#-scripttaal
Functies en methodeaanroepen begrijpen
Laden en kasten openen met specifieke sleutels in eenheid
Werken met tekenreeksen en tekstgegevens in eenheid manipuleren
Inleiding tot variabelen en gegevenstypen bij programmeren in eenheid
Inventarisatie- en itemcrafting-systeem in eenheid maken
Sway-effect toevoegen aan wapens in eenheid