LoginSignup
0
0

More than 5 years have passed since last update.

【Unity】Pluginsフォルダーのスクリプトから本体スクリプトを呼び出したい

Posted at

なぜこんなもんを書く?

Unityでは特殊フォルダー(Plugin, Editor, Resourcesなど)があり、Pluginフォルダーから本体(特殊フォルダー以外の外部スクリプト)に直接アクセスできない仕組みらしい

アクセスするにはどうすれば良い?

結果から言うとこんな感じでアクセスできる

void Start ()
{
    // 実行中にManagersという名前のゲームオブジェクトを探す
    var GUIMessageHelper = GameObject.Find ("Managers");
    // ゲームオブジェクトに付いているコンポーネントを名前から探す
    var comp = GUIMessageHelper.GetComponent ("GUIMessageHelper");
    // 呼び出したいメソッドのパラメータを作る。ここではDictionary<string, string>型
    var messageDic = new Dictionary<string, string>
    {
        { "MapPos", transform.position.ToString()}
    };

    // コンポーネントから呼び出したいメソッド名、パラメータ順で呼び出せる
    comp.SendMessage ("AllPlatformGuiMessages", messageDic);
}

注意点

・ゲームオブジェクトは実行中に必ず存在すること(上記ではManagers)
・そのゲームオブジェクトに必ずコンポーネントが存在すること(上記ではGUIMessageHelper)
・SendMessageから呼び出すメソッド名とパラメータは必ず一致すること
・SendMessageで複数パラメータを渡したい場合はクラスを作るかObject配列で渡すこと

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0