[UNITY] UNITY標準ボタンを使わない自作ボタンの例 | 『くつひも物語』開発日誌 #88

↓この記事のクラスを自分なりに改変したものです。

【Unity UI】Unity標準ボタンをおすすめしない5つの理由

MyButtonController

ボタンにしたいオブジェクトにアタッチするクラス。

アタッチすれば「Selectable」コンポーネントを自動追加するので、コントローラーやキー入力でのボタン選択移動にも対応しています。

自分でもよくわからなくなるのでデバッグのための機能が多く、読みにくいコードになっていてすみません。

蛇足ですが、全てのクラス名に「My」がついているのは、【「自作しなくてもいいのに理由があってあえて自作したもの」にはMyをつけたほうがわかりやすい】とUNITY Japanの山村氏が言っていたからです。

MyButtonData

ボタンのデータ。プロジェクトウインドウのどこかに置いておけばよいクラス。

大変申し訳ありませんが、なんのためにMyButtonControllerと分けて作ったのか覚えていません。

どう考えてもMyButtonControllerと統合して良いような気がするけど、リファクタリングが面倒で放置しています…。

MyButtonActivator

MyButtonControllerを全部アクティブにしたり非アクティブにしたりするためのクラス。

これをアタッチしたオブジェクトをシーンに一つ置いておく……

……いや、いま気が付いたけどStaticなクラスにすればシーンに置く必要ないですね。すみません。

MyButtonPool

MyButtonControllerを取りまとめておくためのクラス。

これをアタッチしたオブジェクトをシーンにひとつ置いておく。

下のほうの「Staticなライブラリにおくほうがいいメソッド」はMyButtonController内のメソッドと同じものです。

Staticな自作ライブラリの例

一つ作っておいて、汎用的なメソッドやEnumは全部ここに置いておけばよいので非常に便利です。