Variabili di classe: variabili con più sottovariabili in unità

In Unity creare variabili è semplice:

public int someValue = 1;

La variabile sopra verrà mostrata in questo modo nella vista Inspector:

Ma cosa succede se si desidera avere più sottovariabili in una singola variabile? È facile da ottenere con le variabili di classe.

Le variabili di classe sono variabili che utilizzano un'altra classe come tipo di base, dando la possibilità di avere più variabili secondarie in un gruppo.

Viene eseguito utilizzando una classe con l'attributo [System.Serializable].

Controlla il codice qui sotto:

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;
}
  • Lo script sopra definisce una classe chiamata VariableGroup
  • La classe VariableGroup contiene più variabili secondarie
  • Notare [System.Serializable] prima della classe. Questo attributo è necessario per poter modificare le sue variabili nella vista dell'ispettore.
  • Infine, viene definita la variabile variableGroup, che utilizza la classe VariableGroup.

Si accede ai valori della classe chiamando il nome della variabile seguito da un punto e quindi il nome della variabile figlia:

variableGroup.t
variableGroup.someValue
variableGroup.someBool

La classe precedente può essere utilizzata anche in un array:

public VariableGroup[] variableGroup;