【Unity】Pluginsフォルダーのスクリプトから本体スクリプトを呼び出したい
なぜこんなもんを書く?
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配列で渡すこと
Author And Source
この問題について(【Unity】Pluginsフォルダーのスクリプトから本体スクリプトを呼び出したい), 我々は、より多くの情報をここで見つけました https://qiita.com/shoridevel/items/9f4b15b1c129e0fb6213著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .