のっぴきならない昨今です

デジタルものを中心に、IT系従事者のあれやこれやを徒然なるままに綴ります

Unity3D Publicは使いたくないけどInspectorから編集したいよね

ご無沙汰しております。

転職したためブログを覚醒活習慣の構築に難儀しておりました。

だいぶ生活リズムが作れるようになってきたのでちょろっと更新。

さて、Unity3D関連の書籍では、 Prefab等をGameObjectにアタッチする際に GameObjectにアタッチされているスクリプトに 必ずと言って良いほど

public GameObject prefab;

なんて記述を見かけます。

確かにこう書くと、該当のオブジェクトを選択して インスペクタにPrefabをドラッグ&ドロップするだけで アタッチすることができるので、非常に楽です。 しかも下手にGameObject.Find()とかやるより高速だし。

でも、Unityからプログラミングに入った人で無い限り publicを使うのって、すごーく抵抗があると思います。 っていうか、publicは使っちゃダメで、 必ずprivateでアクセサを用意して参照するようにルールがある場所も多いかと思います。

そんなときは SerializeFieldを使えばOK

[SerializeField] private GameObject prefab;

と記述すると、あら不思議 privateなのにインスペクタに表示されるようになりました!

ということで、最近教えて貰った、意外と本に書いてなさそうな豆知識でした。