FindやGetComponentをなるべく避ける方法

Unity

FindやGetComponentを避ける実践編になります
前段は前のエントリーを御覧ください
まず、どういった場合にGetComponentを使いたくなるかという所ですが、
例えば以下のようなスプライトを持つプレハブがあったとして、

スクリプトから画像を変更したい!という場合に、スプライトの参照が欲しくなると思います。
GetComponentを使う場合はどうするかというと、プレハブに関連付るクラスファイルに、

SpriteRenderer HogeSpriteRenderer = gameObject.GetComponent();
if (HogeSpriteRenderer != null) {
    HogeSpriteRenderer.sprite = 変更したいSprite;
}

みたいな感じで書くのかなと思います。
検索しても大体この方法が出てきますね。
私の場合、この方法はなるべく取らず、インスペクタ上で参照しておく方法を取っています。

[SerializeField]
SpriteRenderer HogeSpriteRenderer;
〜
if (HogeSpriteRenderer != null) {
    HogeSpriteRenderer.sprite = 変更したいSprite;
}
〜

という方法を取っています。
以下のようにインスペクタ上で参照を紐付けています。

GetComponentをなるべく使わない方法として、
私はこの方法が良いのではと思っています。

Unity
スポンサーリンク
northprintをフォローする
おおよそ北の方向から

コメント