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;