スポンサーリンク

【Unity】Inspectorに変数を表示する方法

スポンサーリンク
Unity

変数をpublicにする

using UnityEngine;

//スライムクラス
public class Slime : MonoBehaviour
{
    public string name;     //名前  表示される

    public int hp;          //体力    表示される

    int strength;           //攻撃力 表示されない

    private int defence;    //防御力 表示されない
}

変数のアクセス指定子に、publicをつけることで、変数の値を表示することが出来ます。

publicは、他のスクリプトからアクセスできてしまうので、注意が必要です。

アクセス指定子

アクセス指定子は、変数の前につけることで、変数のアクセス範囲を指定することが出来ます。

●private
  privateは、変数を定義したクラスでのみアクセスできるよう、指定することが出来ます。変数に何もアクセス指定子をつけない場合は、privateとなります。

●public
 publicは、変数を定義したクラス以外でもアクセスできるよう、指定することが出来ます。

●protected
 protectedは、変数を定義したクラスと、定義したクラスを継承したクラスでのみアクセスできるよう指定することが出来ます。

[SerializeField]を変数の前につける

using UnityEngine;

//スライムクラス
public class Slime : MonoBehaviour
{
    [SerializeField] string name;     //名前  表示される

    [SerializeField] int hp;          //体力    表示される

    int strength;           //攻撃力 表示されない

    private int defence;    //防御力 表示されない
}

変数の前に、[SerializeField]をつけることで、privateやprotectedな変数を、Inspectorに表示することが出来ます。

クラスや構造体は[SerializeField]をつけるだけでは表示されない

using UnityEngine;

//ステータス構造体を定義
[System.Serializable]
public struct Status
{
    public int hp;
    public int strength;
    public int defence;
    public int speed;
}


//スライムクラス
public class Slime : MonoBehaviour
{
    [SerializeField]private Status status;   //ステータス構造体
}

クラスや構造体は、publicや[SerializeField]をつけるだけでは、Inspectorには表示されません。

表示させるには、クラスや構造体に[System.Serializable]をつけることで、Inspectorに表示することが出来ます。

タイトルとURLをコピーしました