【Unity】スクリプトがアタッチされているGameObject以外のGameObjectを取得する方法

UnityでスクリプトがアタッチされているGameObjectを取得するには、いくつかの方法があります。以下はそのいくつかの方法です。

様々な方法

インスペクターから直接割り当てる方法

もう1つの方法は、インスペクターからGameObjectを直接割り当てることです。スクリプトがアタッチされているGameObjectを公開の変数として定義し、Unityのインスペクターで手動で割り当てることができます。例えば:

public GameObject myGameObject;

これにより、インスペクターでスクリプトがアタッチされているGameObjectをドラッグ&ドロップで設定できます。

タグまたは名前を使用してGameObjectを検索する方法

スクリプトがアタッチされているGameObjectを特定の条件で検索することもできます。例えば、特定のタグを持つGameObjectを検索する場合は、次のように行います

GameObject[] objectsWithTag = GameObject.FindGameObjectsWithTag("TagName");

または、特定の名前を持つGameObjectを検索する場合は、次のように行います

GameObject myGameObject = GameObject.Find("ObjectName");

ただし、これらの方法はGameObjectを検索するためにリソースを使用し、効率的でない場合があるため、できるだけ使用を避けることが望ましいです。代わりに、1つ目の方法や2つ目の方法を検討することをお勧めします。

どの方法を選ぶかは、特定のケースに依存します。通常は、GetComponent を使用するか、インスペクターから割り当てる方法が最も適しています。

参考

GameObject myGameObject = GameObject.Find("Directional Light");

Unity

Posted by hidepon