0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Unity - インスペクターに変数を表示したい!~publicと[SerializeField]について~

Last updated at Posted at 2025-03-22

変数をインスペクターに表示する、魔法ような、神のような構文

え?インスペクターで変数を表示できるようにしたい?分かります。めっちゃ分かります。変数って、何かと便利ですもんね。
そんな変数をインスペクターに表示させる構文をお教えしましょう。
ズバリ、publicです。
例を交えて説明します。

@publicを付けたら何かと便利な件

Test.cs
using System;
using System.Collections.Generic;
using UnityEngine;

public class TestScript : MonoBehaviour
{
    public int Int;
    public float Float;
    public double Double;
    public bool Bool;
    public char Char;
    public string String;
    public List<int> list;
    public int[] Array = new int[] {1, 2};
}

注意
List型変数と配列型変数(上記のスクリプトではint[])を使うときは、必ず

using System;
using System.Collections.Generic;

を記述しましょう。抜けていると、エラーが発生してうまく実行できません。

こんな処理を書いたとします。
これを実行してーの、表示されてーの...実行結果はこうなります。
スクリーンショット 2025-03-22 191300.png
int[]はなぜか表示されていませんが、とにかく、実行結果はこんな感じになります。(ListはInspector上で追加しています。)

秘密は、先ほども紹介した通り、publicにあります。
このスクリプト、他のクラスにも変数を公開できるのと同時に、Inspectorにも表示されるという優れものなのです。

publicと何が違う?[SerializeField]について

publicと似た処理の中に、[SerializeField]というものがあります。記述方法は、public[SerializeField]に変えるだけです。

この[SerializeField]は、こんな時に使えます
・Inspector上に情報を表示したい時
・他のスクリプトに意図せずに値を渡して変更されて欲しくない時

この処理は、2人以上でプロジェクトを作成しているときに重宝します。
例えば、、、

AさんとBさんは一緒にプロジェクトを作成しています。
ただし、AさんとBさんは別々のスクリプトを担当しています。
Aさんは、Inspector上に情報を表示したいと思い、以下のような処理を書きました;

public float Object_Hearth;

実は、この変数Object_HearthはAさんは公開する意図はなかったのですが、Bさんは「Object_Hearthは使えるな」と考え、担当しているスクリプトに組み込んでしまいました。
結果として、プロジェクトがおかしなことになりましたとさ。

こんな悲しい結果を防ぐためにも、[SerializeField]は重宝するのです1
ちなみに、Aさんは、このことを知ってこんな処理に訂正しました。

[SerializeField] private float Object_Hearth;
//privateと表記しておくことで、このオブジェクトを使ってほしくないことや、使えないことを明示できます。

まとめ

今回は、public[SerializeField]について解説しました。

publicは、インスペクターに変数を表示したいときや、同時に変数を別のスクリプトで使えるようにしたいときに有効です。
[SerializeField]は、インスペクターに変数を表示したいけど、変数を別のスクリプトで使えるようにしたくないときに有効です。


質問があればいつでもどうぞ!できる範囲でお答えします。

  1. 参考サイト:【初心者Unity】[SerializeField]ってなに? | TECH PROjin

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?