HPゲージなど、パラメータが変更されたタイミングで UI に反映する必要があり、
そのパラメータの利用箇所が増えると処理が複雑になっていく
そのため、汎用的に利用できる監視クラスを作成しました
※UniRx を使えば簡単に利用できるあれですが…
using System; public class SubscribeValue<T> { public event Action<T> Subscribe; private T _value; public SubscribeValue() { _value = default; } public SubscribeValue(T defaultValue) { _value = defaultValue; } public T Value { get => _value; set { _value = value; Subscribe?.Invoke(_value); } } }
使い方
private SubscribeValue<int> Value; private void Awake() { Value = new SubscribeValue<int>(); // 購読登録 sValue.Subscribe += Subscribe; // 値を変更すると購読先が実行される sValue.Value = 10; } private void Subscribe(int value) { Debug.Log($"change value : {value}") }