UIについて適当にメモ
- はじめに
あまりブログを書いたことがないのでだらだらと所感とかを書いていく感じにする。
読みにくかったらアドバイスを下さい。
今回は一時的にコメントできるラインを引き下げて置きます。
- 現在のUIの方針
現在作っている「人形少女と光の妖精(仮)」はEventSystemとSelectacleをガッツリ使う方針でUIを作成してる。
入力に関しては新しい方のInputSystemを利用し、コントローラーベースの操作で作成している。
少しUI Tool KitとVisualElementも気になってはいるが、今回は見送り。
将来的に使いまわせるようにUI周りのクラスを作ってはいるが、UI Tool Kitに乗り換えるなら無用の長物ではある。
- ISelectionHandlerとIDeselectionHandlerについてのメモ
Selectacleを継承するとそっちに付随してる。
EventSystem経由で選んだ、選んだ状態を解除したと言うイベントが走る。
SelectacleのNavigationを利用した選択の変更の際は、
A>Bもしくは双方向でもNavigationがついてる場合に
A:選択状態
B:
から
A:
B:選択状態
になる場合に、AのOnDeselectが呼ばれ、BのOnSelectが呼ばれる。
順番必ず前の選択解除OnDeselectが先で、次の選択OnSelectが後である。
これはEventSystemのSetSelectedGameObjectを利用して変更した場合も同様である。
なにが言いたいかというとネストしたUIで操作状態をキャッシュする時に必要な知識である。
※ネストしたUIの例。ようは普通の選択したら他のパネルが開くみたいな奴。
そんなことしないで、全部自前で実装すればいいと思うかもしれないが、きちんと理解したうえで利用すればコード量がかなり減る利点がある。