mirror of
https://github.com/unity-atoms/unity-atoms.git
synced 2025-01-24 17:17:47 -05:00
29 lines
720 B
C#
29 lines
720 B
C#
|
using UnityEngine;
|
||
|
using UnityEngine.Events;
|
||
|
|
||
|
namespace UnityAtoms
|
||
|
{
|
||
|
public class MonoHook<E1, E2, EV, SF> : MonoBehaviour
|
||
|
where E1 : GameEvent<EV> where E2 : GameEvent<EV, GameObject>
|
||
|
where SF : GameFunction<GameObject, GameObject>
|
||
|
{
|
||
|
public E1 Event;
|
||
|
|
||
|
public E2 EventWithGORef;
|
||
|
|
||
|
[SerializeField]
|
||
|
protected SF SelectGORef;
|
||
|
|
||
|
protected void OnHook(EV value)
|
||
|
{
|
||
|
if (Event != null)
|
||
|
{
|
||
|
Event.Raise(value);
|
||
|
}
|
||
|
if (EventWithGORef != null)
|
||
|
{
|
||
|
EventWithGORef.Raise(value, SelectGORef != null ? SelectGORef.Call(gameObject) : gameObject);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|