Variáveis de classe: variáveis com várias subvariáveis no Unity
Em Unity criar variáveis é simples:
public int someValue = 1;
A variável acima será mostrada assim na visualização do Inspetor:
Mas e se você quiser ter várias subvariáveis em uma única variável? Isso é fácil de conseguir com as variáveis de classe.
Variáveis de classe são variáveis que usam outra classe como tipo base, dando a capacidade de ter várias subvariáveis em um grupo.
Isso é feito usando uma classe com o atributo [System.Serializable].
Verifique o código abaixo:
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;
}
- O script acima define uma classe chamada VariableGroup
- A classe VariableGroup contém várias subvariáveis
- Observe o [System.Serializable] antes da classe. Este atributo é necessário para poder editar suas variáveis na visualização do inspetor.
- E por último, é definida a variável variableGroup, que utiliza a classe VariableGroup.
Os valores de classe são acessados chamando o nome da variável seguido por um ponto e então o nome da variável filha:
variableGroup.t
variableGroup.someValue
variableGroup.someBool
A classe acima também pode ser usada em um array:
public VariableGroup[] variableGroup;