Unity StartCoroutineなどで引数渡す時、Stringを使わずにメソッドを渡す方法
今回は、以下の記事の処理を継承を行うことでミスをなくす。
Unity - StartCoroutineなどで、引数に渡すメソッド名をうっかり変えそびれるのを防ぐ方法 - Qiita
ArgumentChangeStringToMethod.cs
gist.github.com
サンプルスクリプト
gist.github.com
以下のようにすることで、Stringを利用せずにメソッドを渡すことができる。
これにより、コードの変更でメソッド名が変更した時対応できる。
Invoke (CallTestInvoke, 1); InvokeRepeating (CallTestInvoke, 2, 2); SendMessage (CallTestSendMessage); SendMessage (CallTestSendMessage, 1); SendMessage (CallTestSendMessage, SendMessageOptions.DontRequireReceiver); SendMessage (CallTestSendMessage, SendMessageOptions.RequireReceiver); BroadcastMessage (CallTestSendMessage); BroadcastMessage (CallTestSendMessage, 1); BroadcastMessage (CallTestSendMessage, SendMessageOptions.DontRequireReceiver); BroadcastMessage (CallTestSendMessage, SendMessageOptions.RequireReceiver);
実行結果
参考
Unity - StartCoroutineなどで、引数に渡すメソッド名をうっかり変えそびれるのを防ぐ方法 - Qiita
安井のブログ: [Unity]多重継承について
C#入門/継承 - WisdomSoft
Unity:外部からオブジェクトグループの関数をまとめて呼び出したい | ヤマヤタケシのブログ