Zmienne klasowe: zmienne z wieloma zmiennymi podrzędnymi w jedności

W Unity tworzenie zmiennych jest proste:

public int someValue = 1;

Powyższa zmienna będzie pokazana w widoku Inspektora w następujący sposób:

Ale co, jeśli chcesz mieć wiele zmiennych podrzędnych w jednej zmiennej? Łatwo to osiągnąć dzięki zmiennym klasowym.

Zmienne klasowe to zmienne, które wykorzystują inną klasę jako typ podstawowy, co pozwala na posiadanie wielu zmiennych podrzędnych w jednej grupie.

Odbywa się to za pomocą klasy z atrybutem [System.Serializable].

Sprawdź poniższy kod:

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;
}
  • Powyższy skrypt definiuje klasę o nazwie VariableGroup
  • Klasa VariableGroup zawiera wiele zmiennych podrzędnych
  • Zwróć uwagę na [System.Serializable] przed klasą. Ten atrybut jest potrzebny, aby móc edytować jego zmienne w widoku inspektora.
  • Na koniec zdefiniowana jest zmienna variableGroup, która korzysta z klasy VariableGroup.

Dostęp do wartości klasy uzyskuje się poprzez wywołanie nazwy zmiennej, po której następuje kropka, a następnie nazwa zmiennej podrzędnej:

variableGroup.t
variableGroup.someValue
variableGroup.someBool

Powyższą klasę można również zastosować w tablicy:

public VariableGroup[] variableGroup;