以下の内容はhttps://hakase0274.hatenablog.com/entry/2019/04/07/213613より取得しました。


Unity インスペクター上からprivate変数を弄る方法

あいさつ

どうも、はかせです。
今回もUnityTips記事です。
今回のTipsはUnityでインスペクター上から弄りたい変数なんだけど
他のクラスから弄られたくないときに使えるものの紹介です。

[SerializeField]

これは属性といわれるものの一つで
この宣言を先頭にした変数はインスペクター上に公開されます。
宣言した時としなかった時のインスペクターを見てみましょう。
まずは宣言しなかった時のスクリプトとインスペクターです。

public class TestScript : MonoBehaviour
{
    private int mTestInt;
}

f:id:hakase0274:20190407212631p:plain

次に宣言した時のスクリプトとインスペクターです。

public class TestScript : MonoBehaviour
{
    [SerializeField]
    private int mTestInt;
}

f:id:hakase0274:20190407212756p:plain
[SerializeField]宣言した変数がインスペクター上に出ています。
この欄に変数に代入したい値を入力することで
インスペクター上からprivate変数を弄ることが出来ます。

ちなみに

public class TestScript : MonoBehaviour
{
    [SerializeField]private int mTestInt;
}

こう書いても問題なく動きます。
これは好みです。

あとがき

今回はUnityの[SerializeField]紹介でした。
私はpublicで外部に弄られたくないがちょこちょこ変える値(操作感度とか)
この属性を付けます。

まぁ個人や小規模開発ならpublicで書いちゃってもいい気がしますが
[SerializeField]つけると「この値はインスペクター上から弄る」という意思表示になって
後から読むとき気持ち楽になります。

それでは今回はこの辺でノシ




以上の内容はhttps://hakase0274.hatenablog.com/entry/2019/04/07/213613より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14