FindやGetComponentを避ける実践編になります
前段は前のエントリーを御覧ください
まず、どういった場合にGetComponentを使いたくなるかという所ですが、
例えば以下のようなスプライトを持つプレハブがあったとして、
スクリプトから画像を変更したい!という場合に、スプライトの参照が欲しくなると思います。
GetComponentを使う場合はどうするかというと、プレハブに関連付るクラスファイルに、
SpriteRenderer HogeSpriteRenderer = gameObject.GetComponent(); if (HogeSpriteRenderer != null) { HogeSpriteRenderer.sprite = 変更したいSprite; }
みたいな感じで書くのかなと思います。
検索しても大体この方法が出てきますね。
私の場合、この方法はなるべく取らず、インスペクタ上で参照しておく方法を取っています。
[SerializeField] SpriteRenderer HogeSpriteRenderer; 〜 if (HogeSpriteRenderer != null) { HogeSpriteRenderer.sprite = 変更したいSprite; } 〜
という方法を取っています。
以下のようにインスペクタ上で参照を紐付けています。
GetComponentをなるべく使わない方法として、
私はこの方法が良いのではと思っています。
コメント