🔀
【Unity】UIのON/OFFなどを柔軟にコントロールできるコンポーネント
ソースコード
インスペクタでbool値をUIの何に割り当てるかを設定できるので、ソースの変更なしに様々なパターンに対応ができるようになります。
- GameObject.SetActive:オブジェクト丸ごとON/OFF
- Image.enabled:画像単体の表示ON/OFF
- Button.interactable:ボタンの入力可否をON/OFF
また、ON/OFFを反転しているバージョンも用意しているので、「無効な時に有効にしたいもの」のようなパターンにも対応ができます。
(例:ロックされていることを示す鍵マークとか)
True/Falseで関数の呼び分けもできるので、簡易的なアニメーションの制御も可能です。
クラス内に直接シリアライズして使える版
TestBehaviour.cs
public class TestBehaviour : MonoBehaviour
{
[SerializeField]
private SerializedBooleanDispatcher _visibleBinding;
public void SetVisible(bool visible)
{
_visibleBinding.Dispatch(visible);
}
}
↓このように見える
更にenumやstring, intなどにも対応できる版
TestBehaviour.cs
public class TestBehaviour : MonoBehaviour
{
public enum State
{
One,
Two,
Three,
}
[SerializeField]
private SerializedDispatcher<State> _stateBinding;
public void SetState(State state)
{
_stateBinding.Dispatch(state);
}
}
状態に応じてオブジェクトを出し分けしたい時に使えます
Discussion