GameManagerから、別のスクリプトのメソッドを直接Invokeしたり、StartCoroutineを使用する方法。
正しいコード
以下の例ではGameManagerで、あらかじめプレイヤーの参照を取得。
publicなメソッド、コルーチンを呼んでいる。
//Invoke
player.Invoke("PlayerMethod", 1.0f);
//StartCoroutine
player.StartCoroutine("PlayerCoroutine");
理由
Invokeや、StartCoroutineは「MonoBehaviourクラス」のPublicメソッド(Staticではない)。
「MonoBehaviourクラス」は、スクリプトを作成した時にデフォルトで継承される奴です。
Staticなスクリプトではないので、相手スクリプト側のInvoke、StartCoroutineを呼んでいるという訳。
【失敗例】Invoke(“player.PlayerMethod”)
Resources.Loadを良く使っているので、ああ言った書き方が必要なのかと思い、Invoke(“player.PlayerMethod”)とか、アホなミスをしてしまった。
(実行されないので間違っているのが分かるが、Invokeの指定ミスのエラーは、コソッとしか出ない)。