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.someBoolA classe acima também pode ser usada em um array:
public VariableGroup[] variableGroup;