We will entertain your mind, enhance your brain, expand your lifestyle.

イベントリスナー

UnityのUIパーツは、状態変化を通知するイベントリスナーをインスペクターで指定する。この時指定できるリスナーはUnityEvent<T0>のみであるためパラメータが1つだけであり、Buttonパーツは別個にIDなど指定できるが、ToggleやSliderの場合、変化したパラメータとして引数が使われるため、パーツの識別にはリスナー関数を別個に用意しなければならない。

インスペクターで指定できるリスナーを UnityEvent<T0,T1>に変更できないか調べていて、インスペクターではなくスクリプトから UnityEvent.AddListner()を使用する方法に辿り着いた。

これを利用して、Toggleなどでパーツの名前と合わせてリスナーに通知することで、UI関連のイベント処理の記述を効率的にすることができた。