Sharp Coder is reader-supported, meaning when you buy through links on our site, we may earn an affiliate commission.

Class Variables: Variables With Multiple Sub-Variables in Unity 3D

0 Comments ยท Dec 3, 2019

In Unity 3D creating variables is quite easy:

public int someValue = 1;

Variable above will be shown like this in the Inspector view:

But what if you want to have multiple sub-variables in one single variable? Introducing Class Variables.

Class Variables are variables that use another class as a base type, giving the ability to have multiple sub-variables in one group.

It can be achieved by using a class with [System.Serializable] attribute.

Check the code below:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SC_ClassVariables : MonoBehaviour
    public class VariableGroup
        public Transform t;
        public int someValue = 1;
        public bool someBool = false;

    public VariableGroup variableGroup;
  • The script above defines a class called VariableGroup
  • The class VariableGroup contains multiple sub-variables
  • Note the [System.Serializable] before the class. This attribute is needed to be able to edit its variables in the inspector view.
  • And lastly, the variable variableGroup is defined, which uses the VariableGroup class.

The class values are accessed by calling the variable name followed by a dot then a child variable name:


The class above can also be used in an array:

public VariableGroup[] variableGroup;

You Do Not Have To Do Everything Yourself
Search from thousands of ready-to-use Unity assets.
Visit Asset Store