Unityで他のオブジェクトの変数を見たい


見せるのは簡単、見に行くのは大変

やること

Unityで他のGameObjectのPublic変数を参照します。

スクリプトその① Publicを発行する側

下記のスクリプトをCube等、適当なObjectにアタッチします。
Object名はPubTestとします。

Script1
using UnityEngine;

public class Script1 : MonoBehaviour
{
    public int open_value = 123; //publicな変数を設定
}

スクリプトその② Publicを見に行く側

下記のスクリプトをSphere等、適当なObjectにアタッチします。
Object名はRefTestとします。

Script2
using UnityEngine;

public class Script2 : MonoBehaviour
{
    GameObject target1 = GameObject.Find("PubTest"); //スクリプト①のオブジェクトを見つける
    Script1 script = target1.GetComponent<Script1>(); //見つけたオブジェクトのスクリプトを指定
    Debug.Log(script.open_value);//そのスクリプトの中の変数を指定してログに表示
}

実行

こうなっていれば成功ですが、もう少し簡単な方法がありそうな気がします。

[前回記事]
UnityでSliderを使ってCubeを回したい
https://qiita.com/Ninagawa_Izumi/items/96f316d417d825cc1137