using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; public class SettingSignalCatcher : MonoBehaviour { [SerializeField] private List signalToCallbackList; private void OnEnable() => SignalView.SignalEmmited += HandleSignal; private void OnDisable() => SignalView.SignalEmmited -= HandleSignal; public void HandleSignal(string entrySignal) { foreach (var signalToCallback in signalToCallbackList) { if (signalToCallback.Signal == entrySignal) { signalToCallback.Callback?.Invoke(); return; } } Debug.LogWarning($"Callback для сигнала {entrySignal} не задан", this); } [Serializable] class SignalToCallback { public string Signal; public UnityEvent Callback; } }