↓この記事のクラスを自分なりに改変したものです。
【Unity UI】Unity標準ボタンをおすすめしない5つの理由
MyButtonController
ボタンにしたいオブジェクトにアタッチするクラス。
アタッチすれば「Selectable」コンポーネントを自動追加するので、コントローラーやキー入力でのボタン選択移動にも対応しています。
自分でもよくわからなくなるのでデバッグのための機能が多く、読みにくいコードになっていてすみません。
蛇足ですが、全てのクラス名に「My」がついているのは、【「自作しなくてもいいのに理由があってあえて自作したもの」にはMyをつけたほうがわかりやすい】とUNITY Japanの山村氏が言っていたからです。
MyButtonData
ボタンのデータ。プロジェクトウインドウのどこかに置いておけばよいクラス。
大変申し訳ありませんが、なんのためにMyButtonControllerと分けて作ったのか覚えていません。
どう考えてもMyButtonControllerと統合して良いような気がするけど、リファクタリングが面倒で放置しています…。
MyButtonActivator
MyButtonControllerを全部アクティブにしたり非アクティブにしたりするためのクラス。
これをアタッチしたオブジェクトをシーンに一つ置いておく……
……いや、いま気が付いたけどStaticなクラスにすればシーンに置く必要ないですね。すみません。
MyButtonPool
MyButtonControllerを取りまとめておくためのクラス。
これをアタッチしたオブジェクトをシーンにひとつ置いておく。
下のほうの「Staticなライブラリにおくほうがいいメソッド」はMyButtonController内のメソッドと同じものです。
Staticな自作ライブラリの例
一つ作っておいて、汎用的なメソッドやEnumは全部ここに置いておけばよいので非常に便利です。