using System; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; public class SignalCatcher : MonoBehaviour { [SerializeField] private List _signalCallbacks; private void Start() { SignalView.SignalEmmited += HandleSignal; } private void HandleSignal(string signal) { var signalCallback = _signalCallbacks.Find((s) => s.signal == signal); if (signalCallback.signal == null) { Debug.LogError($"Не найден колбэк для сигнала {signal}"); return; } signalCallback.callback?.Invoke(); } } [Serializable] public struct SignalCallback { public string signal; public UnityEvent callback; }