【Unity C# スクリプト】シーン上オブジェクトをスクリプトから参照

シーン全体をコントロールするような、当該オブジェクトにアタッチされていないスクリプトから、特定のオブジェクトを参照する方法は、いくつか存在する。

ひとつは、GameObject.Find(オブジェクト名) で、オブジェクト(への参照)を取得する方法だ。

  var cube1 = GameObject.Find("Cube1");  // "Cube1" オブジェクトを取得
  cube1.transform.position = new Vector3(2f, 0.5f, -2f);  //  位置を指定

もうひとつの方法は、スクリプト内でパブリックなオブジェクト(への参照)変数を宣言し、Unity エディタで特定のオブジェクトと紐付ける方法だ。

public class scr_camera : MonoBehaviour
{
  public GameObject go;   //  他のゲームオブジェクト(への参照)
  .....
}

上記のように、オブジェクト(への参照)変数を宣言し、Unity のエディタでスクリプトをインスペクタで見ると、下図のように、プロパティが増えている。
そこに紐付けたいオブジェクトをドラッグ&ドロップすればよい。

temp

あとは、その変数を利用するだけだ。

  go.transform.position = new Vector3(2f, 0.5f, -2f);  //  位置を指定