using UnityEngine.Events; using VOID.Generic.Objects.Abstract.Events; namespace VOID.Generic.AI.Schema { public class SchemaUnitEventWrapper where TUnitEvent : AbstractEvent { private UnityEvent _listener; private UnityAction _action; public SchemaUnitEventWrapper( UnityEvent addListenerTo, UnityAction action, UnitObjectSchemaAgent agent, TMemory memory) { _listener = addListenerTo; _action = t1 => action.Invoke(t1, memory, agent); } public void On() { _listener.AddListener(_action); } public void Off() { _listener.RemoveListener(_action); } } }