【unity】GameObjectとgameObjectとFindとGetComponent

Unity技術関連

【unity】よく間違える GameObjectとgameObjectと Find と GetComponent

unityでよく間違えるこれ、GameObjectとgameObject、さらにそれに付くFindとGetComponent。

プログラミングをしていると、オブジェクトを参照する際によく使うのにどうしても迷ってしまうことがあります。

これの簡単な覚え方を教えましょう!

標準のレイアウトの時、

左のものを探すときは「GameObject.Find」で、

右のものを探すときは「gameObject.GetComponent」

//GameObjectの例
GameObject obj = GetObject.Find("Cube");

//gameObjectの例
gameObject.GetComponent<Renderer>().material.color = UnityEngine.Color.cyan;

です!

じつは同じ大文字小文字のGameObjectなんですが、大きな違いがあります。

GameObjectはクラスに最初に割り当てられているstatic関数を呼び出しています。

一方gameObjectはクラスではなく、メモリを割り当てられたインスタンスが割り当てられています。

なので実際にメモリが割り当てられているオブジェクトに関しては小文字のgameObjectになります。

どうでしょう。右左で大きな違いがあるのを覚えておいてくださいね。

ついでにもうひとつ、オブジェクトの色を変えるときは、

gameObject.GetComponent<Material>()

ではなくて、

gameObject.GetComponent<Renderer>().material.color = UnityEngine.color.blue;

ですよ。マテリアルをつけて色を変えるんですが、スクリプトで色を変えるのはRendererです。

タイトルとURLをコピーしました