GameObjectの取得方法とGameObjectの子のコンポーネントの取得方法
GameObjectの取得方法には色々あるので、備忘録として記録を残しておきます。また、GameObject内の子のコンポーネントもソース上で取得したい場合があるので、それに関しても記述を残します。
1.GameObjectの取得方法
GameObjectの取得方法は大きく分けて2つあり、ヒエラルキ上から全検索されて処理が重たくなる場合と、指定したオブジェクトを参照されるので、処理が軽い場合です。前者の処理が重たくなる場合はGameObjectでアクセスし、後者はTransformでアクセスします。オススメはTransformでアクセスすることです。transformはインスタンスで返されるのに対し、GameObjectはstaticで返され、後から共有、参照ができるかたちとなります。
1.1 Hierarcy上で表示される名前で取得する
GameObject cube = GameObject.Find("cube");
1.1パスで取得する
GameObject cube = GameObject.Find("/cube");
1.2 タグで取得する(ユニークなタグが設定されている場合)
GameObject player = GameObject.FindGameObjectWithTag("Player");
1.3 タグで取得する(複数同一のタグが設定されている場合)
GameObject[] blocks = GameObject.FindGameObjectsWithTag ("Cube");
1.4 【オススメ】インスタンスで取得する
GameObject block = transform.Find("Cube").gameObject;
2.GameObjectの子のコンポーネントの取得方法
SpriteRenderer cardImage= cardObject.transform.GetComponent<SpriteRenderer>();
GameObject cardChild= cardObject.transform.GetComponent<GameObject>();
この記事が気に入ったらサポートをしてみませんか?