【Unity】SerializeFieldとNonSerializedの頂上バトル! 勝つのはどっちだ!!
Unityでスクリプトを作成する際はクラスやフィールド、メソッドなどにAttirbuteを指定することができます。その中で、privateでもシリアライズする[SerializeField]と、publicであってもシリアライズさせない[System.NonSerialized]がありますが、どちらが優先されるのか確認を行なっています。
あなたのゲームをいち早く完成させるための研究所
Unityでスクリプトを作成する際はクラスやフィールド、メソッドなどにAttirbuteを指定することができます。その中で、privateでもシリアライズする[SerializeField]と、publicであってもシリアライズさせない[System.NonSerialized]がありますが、どちらが優先されるのか確認を行なっています。
publicのフィールドや[SerializeField]をつけたフィールドはシリアライズの対象となり、Inspectorウィンドウに表示されるようになります。今回扱う[HideInInspector]を使うと、シリアライズの対象フィールドでもInspectorウィンドウで非表示にすることができます。
スクリプトを書く時に悩む、Inspectorに表示したいフィールドの公開方法。publicなら簡単だけど他のスクリプトからアクセスできちゃうし、[SerializeField]でInspectorに表示するのが無難かなーなんて思いつつ、2つの方法の使い分けを記載。
Unityのスクリプトファイル名って日本語にできるんですかね? という疑問を持ったので試してみました。変数名なども日本語にして動きを確認しているのでご覧あれ。日本語でコードを書くメリットについても触れています。
Unityで実行するスクリプトの順番を指定する方法を紹介しています。MonoBehaviourを継承したスクリプトなら、同じStart()が呼ばれるタイミングでも、スクリプト間の実行順序を変えることができちゃうんです。覚えておくと結構便利かも。