【Unity】他オブジェクトのスクリプトの変数を参照する方法

unity

UnityではオブジェクトにC#スクリプトをアタッチするのが一般的です。

例えば、オブジェクトAにAスクリプト、オブジェクトBにBスクリプトがアタッチされているとしましょう。

この時、AスクリプトからBスクリプトの変数を参照するにはどうすれば良いのでしょうか。

まず、参照されるスクリプトを以下のように書きます。

public class BScript : MonoBehaviour
{
    //publicにしないと他からアクセスできないよ。
    public bool solved = false;
}

アクセスされるクラス、変数はpublicにします。

次に参照するAスクリプトは以下のようにします。

public class AScript : MonoBehaviour
{    
    public BScript bscript;
}

変数bscriptにはUnityエディタ上でBオブジェクトをドラッグ&ドロップしてセットします。

(オブジェクトはFindで探しても良いですが、コードが長くなるので上記のやり方をしています。)

変数にアクセスするには以下の通り。

bscript.solved

以上です。

追記:以下の方法がより一般的かと思ったので追記します。

【Unity】他のクラスから自由に呼び出せるクラスを作成する