// UltEvents // Copyright 2020 Kybernetik // using UnityEngine; namespace UltEvents { /// /// An event that takes a single parameter. /// [System.Serializable] public sealed class CollisionEvent3D : UltEvent { } /************************************************************************************************************************/ /// /// Holds s which are called by various collision events: /// , , and . /// [AddComponentMenu(UltEventUtils.ComponentMenuPrefix + "Collision Events 3D")] [HelpURL(UltEventUtils.APIDocumentationURL + "/CollisionEvents3D")] [DisallowMultipleComponent] [RequireComponent(typeof(Collider))] public class CollisionEvents3D : MonoBehaviour { /************************************************************************************************************************/ [SerializeField] private CollisionEvent3D _CollisionEnterEvent; /// Invoked by . public CollisionEvent3D CollisionEnterEvent { get { if (_CollisionEnterEvent == null) _CollisionEnterEvent = new CollisionEvent3D(); return _CollisionEnterEvent; } set { _CollisionEnterEvent = value; } } /// Invokes . public virtual void OnCollisionEnter(Collision collision) { if (_CollisionEnterEvent != null) _CollisionEnterEvent.Invoke(collision); } /************************************************************************************************************************/ [SerializeField] private CollisionEvent3D _CollisionStayEvent; /// Invoked by . public CollisionEvent3D CollisionStayEvent { get { if (_CollisionStayEvent == null) _CollisionStayEvent = new CollisionEvent3D(); return _CollisionStayEvent; } set { _CollisionStayEvent = value; } } /// Invokes . public virtual void OnCollisionStay(Collision collision) { if (_CollisionStayEvent != null) _CollisionStayEvent.Invoke(collision); } /************************************************************************************************************************/ [SerializeField] private CollisionEvent3D _CollisionExitEvent; /// Invoked by . public CollisionEvent3D CollisionExitEvent { get { if (_CollisionExitEvent == null) _CollisionExitEvent = new CollisionEvent3D(); return _CollisionExitEvent; } set { _CollisionExitEvent = value; } } /// Invokes . public virtual void OnCollisionExit(Collision collision) { if (_CollisionExitEvent != null) _CollisionExitEvent.Invoke(collision); } /************************************************************************************************************************/ } }