【Unity初心者】インスペクターに表示したいけどpublicにしたくない。そんなときはシリアライズフィールドを使いましょう。


環境

Unity 2019.3.7f1

対象の方

なんらかのUnityチュートリアルを終えて制作の雰囲気がわかっている方

使い方

privateな変数宣言時に[SerializeField]をつけるだけ。

[SerializeField] private int a;

これでインスペクターウィンドウで値を表示、編集できるようになります。

具体例

実際にみていきましょう。
↓スクリプトを空のオブジェクトに割り当てます。

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

public class test : MonoBehaviour
{
    [SerializeField] private int a;//int型の変数aを宣言

    //スタート関数
    void Start()
    {
        Debug.Log("a=" + a);//aの値をコンソールに表示
    }

}

通常privateな変数はインスペクターに表示されませんが、
このようにインスペクターに表示され、数値を変更できます。
変数aの値を10に変更します。

実行してみると
↓このようにインスペクターの値が反映されています。

移動速度などを微調整したい時に
いちいちスクリプトから変数の値を変更しなくて済むので超絶便利です!!

楽しいUnityライフを!!