カテゴリー別アーカイブ: Unity

【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);  //  位置を指定

Unity C#スクリプトを Visual Studio でデバッグ

Unity スクリプトを Visual Studio でデバッグするときの手順:

  1. VS で デバッグ>Attach Unity Debugger を実行

temp

2. ダイアログが表示されるので、デバッグするインスタンスを選択し【OK】

temp

3. ブレークポイントを設定

temp

4. Unity でプレイ(Ctrl + P)

あとは、ブレークポイントで止まったら、ステップ実行(F10)や、変数にマウスオーバーで変数内容を参照したり、通常どおりデバッグできる。