インスペクタでいじる変数を共有するには
Unityの特徴的な要素の一つ、それはインスペクタで変数をいじれること。
ユーザーが定義した変数もいじることができる。
いじるには
public class Choge : MonoBehaviour {
public float m_atai = 1.0f; //←これ
など、スクリプト上で、クラスのpublicメンバを追加する。
privateやstaticだとダメ。
で、他のclassからその値を参照する場合の話。
その変数がstaticメンバならなにも気にせず
Choge.m_atai
でアクセスできる。おそらくconst, enumでも出来るだろう。
GameObjectクラスの範疇であれば、オブジェクトにタグをつけておいて
//メンバ
public Choge m_hoge = null;//Start()等で
this.m_hoge = GameObject.FindGameObjectWithTag("Taghoge").GetComponent(); //Update()等で
i = this.m_hoge.m_atai;
とするようだ。
で、GameObjectの範疇でない場合、どうすれば良いのかわからなかったので、以下のようにスクリプトを書いて、
// メンバ
public Choge m_hoge;
prefabまたはインスタンスのインスペクタ上で、m_hogeにChogeのprefabをD&Dした。
これが最善かわからないけれど、動いてはいる。
本当はGetComponent関数を使うのが良いのかもしれないけど、取得できずにこけているよう。なんでだろう。
http://hamken100.blogspot.jp/2012/04/unity-c.html
// メンバ
private Choge m_hoge = null;//Start()
Choge m_hoge = GetComponent(); //Update()
m_hoge.m_atai = 1;
ちなみに、同じオブジェクトについているスクリプトは、
GetComponent("スクリプト名").m_atai
でアクセスできるらしい。