From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- .../OnCollisionEventDummy.cs | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Runtime/Graphs/UnityEngine.Graphs/MonoBehaviourEventDummies/OnCollisionEventDummy.cs (limited to 'Runtime/Graphs/UnityEngine.Graphs/MonoBehaviourEventDummies/OnCollisionEventDummy.cs') diff --git a/Runtime/Graphs/UnityEngine.Graphs/MonoBehaviourEventDummies/OnCollisionEventDummy.cs b/Runtime/Graphs/UnityEngine.Graphs/MonoBehaviourEventDummies/OnCollisionEventDummy.cs new file mode 100644 index 0000000..09ccc8a --- /dev/null +++ b/Runtime/Graphs/UnityEngine.Graphs/MonoBehaviourEventDummies/OnCollisionEventDummy.cs @@ -0,0 +1,43 @@ +using System; +using UnityEngine; + +namespace UnityEngine.Graphs.LogicGraph +{ + // For now we do triggers by attaching this MonoBehaviour to needed gameobjects. Class then sends events to logic graph nodes. + public class OnCollisionEventDummy : ColliderDummyBase + { + public delegate void CollisionOutDelegate(Collision other); + + private CollisionOutDelegate m_OnEnter; + private CollisionOutDelegate m_OnExit; + private CollisionOutDelegate m_OnStay; + + public static void AttachToCollider(ColliderNodes.OnCollisionEvent node) + { + var attached = AttachToCollider(node.self, typeof(OnCollisionEventDummy)) as OnCollisionEventDummy; + attached.m_OnEnter += node.EnterDummy; + attached.m_OnExit += node.ExitDummy; + attached.m_OnStay += node.StayDummy; + } + + public void OnCollisionEnter(Collision collision) + { + if (m_OnEnter == null) + return; + m_OnEnter (collision); + } + public void OnCollisionExit(Collision collision) + { + if (m_OnExit == null) + return; + m_OnExit(collision); + } + public void OnCollisionStay(Collision collision) + { + if (m_OnStay == null) + return; + m_OnStay(collision); + } + } +} + -- cgit v1.1-26-g67d0