添付のようなモード選択用のUI作成に取り組んでいます.
↓コンポーネントの利用目的
Button:ナビゲーションでのキー操作制御のために使用
EventTrigger:"Select", "Deselect"イベントを登録するために使用
以下2点,教えていただけますでしょうか.
①キー操作に関して,
「ボタンのクリックに"エンター"だけでなく左右キーを割り当てる」,「クリックアニメーションが終了するまでナビゲーションのキー移動を制限する」
の2機能を追加したいのですが,
これは現状のButtonのナビゲーションを利用した実装で実現できるのでしょうか?
②UIを作るうえで
「Button(やSelectable)クラスを参照する」,「EventTriggerでトリガーを追加する」,「イベントのインターフェースを実装する」
は実際の現場だとどのように使い分けられているのでしょうか?
(→現状は基本EventTriggerを使って,よく使うものはインタフェースを調べてクラスとして実装しようかと思っています)
①ナビゲーションのスクリプトは操作できる項目が少ないため、左右キーで決定判定を行うのは別スクリプトでInput.GetKey()等を使って、キーが入力されたらクリック時に呼ばれるコードと同じものを呼び出すようなスクリプトを書いた方が完結です。アニメーション中の入力を無効化したい場合もスクリプトを使うと綺麗です。
スクリプトでNavigation.Modeを変更出来るので、現在スクショではVerticalになっていますが、これをアニメーション中だけNoneにすることでナビゲーションの機能が停止します。
以下はナビゲーションのスクリプトだいたい全てが分かりやすく書かれているので参考にしてください。
https://boccilog.wordpress.com/2016/03/26/button%E3%82%92%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%8B%E3%82%89%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E7%99%BB%E9%8C%B2%E3%81%99%E3%82%8B/
②UIや他の機能でも、スクリプトの書き方に特に決まりはなく、個人の感覚やチームでバラバラなので書きやすいものを選んで頂けたらと思います。