33 lines
901 B
C#
33 lines
901 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
public class SettingSignalCatcher : MonoBehaviour
|
|
{
|
|
[SerializeField] private List<SignalToCallback> 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;
|
|
}
|
|
}
|