クラス変数: Unity の複数のサブ変数を持つ変数

Unity では、変数の作成は簡単です。

public int someValue = 1;

上記の変数は、インスペクター ビューでは次のように表示されます。

しかし、1 つの変数に複数のサブ変数を含めたい場合はどうすればよいでしょうか? これはクラス変数を使用すると簡単に実現できます。

クラス変数は、別のクラスを基本型として使用する 変数 で、1 つのグループ内に複数のサブ変数を持つことができます。

これは、[System.Serializable] 属性を持つクラスを使用して行われます。

以下のコードを確認してください。

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;
}
  • 上記のスクリプトでは、VariableGroup というクラスを定義しています。
  • クラス VariableGroup には複数のサブ変数が含まれています
  • クラスの前にある [System.Serializable] に注目してください。この属性は、インスペクター ビューで変数を編集できるようにするために必要です。
  • 最後に、VariableGroup クラスを使用する変数 variableGroup が定義されます。

クラス値にアクセスするには、変数名に続いてドット、次に子変数名を呼び出します。

variableGroup.t
variableGroup.someValue
variableGroup.someBool

上記のクラスは配列でも使用できます。

public VariableGroup[] variableGroup;

おすすめの記事
関数とメソッド呼び出しを理解する
Unity C# スクリプト言語の概要
Unity でインタラクティブなオブジェクトを作成する
Unity でのキネティック インタラクションの実装
Unity で特定のキーを使用して引き出しや食器棚を開ける
Unity のインベントリを使用しないピック アンド ドロップ システム
Unity で車にプレーヤー エントリを追加する