Unityでワンソースなシステム開発:GameObject.FindではなくSerializeFieldでオブジェクトを参照する

Unityでスクリプトを書いていて面倒なのが、他のオブジェクトへの参照ですね。僕はセオリー(?)通りにGameObject.Findでオブジェクトを見つけていたのですが、何でわざわざこんなことをしないといけないのかとブツブツ(頭の中で)言ってました。グローバルに存在しているオブジェクトなので名称で直接参照できたらいいのにとか。そんなときに違う話題の検索からこの記事を発見。Unityで開発する際に気をつけておきたい5つの作法この中の「GameObject.Findは使わない」で、SerializeFieldを使うとあり、これだと、自動ではないですが、名称からの参照切れは回避できますし、ソースがすっきりします。その分インスペクタがごちゃごちゃするでしょうから、メリットばかりではないですが、使う価値はありますね。 実際にテストしてみると、ヒエラルキーからドラッグアンドドロップでオブジェクトを設定すると、スクリプトの中でオブジェクトを参照できました。ひとつのプロジェクトの中で方針がばらばらになるとミスをしますので、今やっているものではGameObject.Findで通そうと思いますが、次のプロジェクトではSerializeFieldでやってみます。”””

コメントをどうぞ

メールアドレスが公開されることはありません。 が付いている欄は必須項目です