UnityではオブジェクトにC#スクリプトをアタッチするのが一般的です。
例えば、オブジェクトAにAスクリプト、オブジェクトBにBスクリプトがアタッチされているとしましょう。
この時、AスクリプトからBスクリプトの変数を参照するにはどうすれば良いのでしょうか。
まず、参照されるスクリプトを以下のように書きます。
1 2 3 4 5 |
public class BScript : MonoBehaviour { //publicにしないと他からアクセスできないよ。 public bool solved = false; } |
アクセスされるクラス、変数はpublicにします。
次に参照するAスクリプトは以下のようにします。
1 2 3 4 |
public class AScript : MonoBehaviour { public BScript bscript; } |
変数bscriptにはUnityエディタ上でBオブジェクトをドラッグ&ドロップしてセットします。
(オブジェクトはFindで探しても良いですが、コードが長くなるので上記のやり方をしています。)
変数にアクセスするには以下の通り。
1 |
bscript.solved |
以上です。
追記:以下の方法がより一般的かと思ったので追記します。