34 lines
766 B
C#
34 lines
766 B
C#
using System;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
using UnityEngine.Events;
|
||
|
||
public class SignalCatcher : MonoBehaviour
|
||
{
|
||
[SerializeField] private List<SignalCallback> _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;
|
||
} |