Variables de classe: variables avec plusieurs sous-variables dans l'unité

Dans Unity, la création de variables est simple:

public int someValue = 1;

La variable ci-dessus sera affichée comme ceci dans la vue Inspecteur:

Mais que se passe-t-il si vous souhaitez avoir plusieurs sous-variables dans une seule variable ? C'est facile à réaliser avec les variables de classe.

Les variables de classe sont des variables qui utilisent une autre classe comme type de base, ce qui permet d'avoir plusieurs sous-variables dans un groupe.

Cela se fait en utilisant une classe avec l'attribut [System.Serializable].

Vérifiez le code ci-dessous:

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;
}
  • Le script ci-dessus définit une classe appelée VariableGroup
  • La classe VariableGroup contient plusieurs sous-variables
  • Notez le [System.Serializable] avant la classe. Cet attribut est nécessaire pour pouvoir modifier ses variables dans la vue de l'inspecteur.
  • Et enfin, la variable variableGroup est définie, qui utilise la classe VariableGroup.

Les valeurs de classe sont accessibles en appelant le nom de la variable suivi d'un point, puis le nom de la variable enfant:

variableGroup.t
variableGroup.someValue
variableGroup.someBool

La classe ci-dessus peut également être utilisée dans un tableau:

public VariableGroup[] variableGroup;

Articles suggérés
Introduction au langage de script Unity C#
Comprendre les fonctions et les appels de méthode
Introduction aux variables et aux types de données dans la programmation dans Unity
Ouverture de tiroirs et d'armoires avec des clés spécifiques dans Unity
Créer un système d'inventaire et de fabrication d'objets dans Unity
Codage d'un système d'inventaire simple avec glisser-déposer de l'interface utilisateur dans Unity
Ajout d'un effet de balancement aux armes dans Unity