Nanashi-soft○プログラマ専用○Unityでゲーム開発○
class test_A extends MonoBehaviour { static public var hensu_a : int; static public function mesodo() : int { return hensu_a; } }・test_B.jsファイル
class test_B extends MonoBehaviour { function Start() { var work : int; work = test_A.hensu_a; //変数の値を取得 test_A.hensu_a = work * 2; //変数に値を代入 work = test_A.mesodo(); //メソッド実行 } }このようにします
class test_A extends MonoBehaviour { static private var hensu_a : int; //他のクラスから直接アクセス不可 //変数読み込みメソッド static public function getMesodo() : int { return hensu_a; } //変数書き込みメソッド static public function putMesodo(work:int) { hensu_a = work; } }・test_B.jsファイル
class test_A extends MonoBehaviour { function Start() { var work : int; // work = test_A.hensu_a; //できません(コンパイルエラー) // test_A.hensu_a = work * 2; //できません(コンパイルエラー) work = test_A.getMesodo(); //変数読み込みメソッド呼び出し test_A.putMesodo(work * 2); //変数書き込みメソッド呼び出し } }このように,private宣言を行うと,他のクラスから直接アクセスできなくなります
class neko extends MonoBehaviour { function Start(){ Debug.Log("猫です"); } } class inu extends MonoBehaviour { function Start(){ Debug.Log("犬です"); } }これを実行すると,「猫です」とだけ表示されます
class neko extends MonoBehaviour { function Start(){ Debug.Log("猫です"); inu.Start(); //inuクラスの初期化を呼び出し } } class inu extends MonoBehaviour { static function Start(){ Debug.Log("犬です"); } }inuクラスのStartは,通常のオーバーライド呼び出しではないので,混乱を避ける為に別の名前にした方が好ましいです
class usagi extends MonoBehaviour { function Start(){ inu.Start(); //inuクラスの初期化を呼び出し } }この usagiクラスを先に実行するようにしても,何の問題も無く処理されます