Unityのボタン等のイベントをシーン内に登録/保持するには、UnityEditor.EventsのUnityEventToolsを使用します。
エディタ上でメソッドを登録するメリットは3つです。
- 実行時にイベントの登録処理を必要としない
- EventListenerの引数とマッチしないメソッドも登録できる
- エディタで何のメソッドが登録されるか確認出来る
但し、名前でイベントを登録している関係上、登録しているメソッド名の変更には注意が必要です。またイベントを2重に登録出来てしまうのでイベント登録時は念のためUnityEditor.Events.UnityEventTools.RemovePersistentListenerでイベントを事前に削除しておくと良さそうです。
ついでにExecuteEditModeでOnDestroy時にイベント削除しておけば、ボタンのイベントを削除する手間も省けます。
作業効率的にはGUIで操作したほうが早く作業完了出来ると思いますが、プログラマ的にはこっちのほうが性に合ってる気がします。登録の自動化等も出来るので。
関連
Resetについて。別にContextMenuでも良い。
MonoBehaviour.Reset()とは - プログラミングとかブログ
ボタンのクリックイベントについて
EditorExtensionsについて。