Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Uses LayerMaskExtensions.cs https://pastebin.com/AZzRYSCJ
- using UnityEngine;
- using UnityEngine.Events;
- public class OnTrigger : MonoBehaviour {
- public LayerMask triggerMask = -1;
- public TriggerEvent OnEnter;
- public TriggerEvent OnStay;
- public TriggerEvent OnExit;
- public void OnTriggerEnter(Collider hit) {
- if(triggerMask.LayerInMask(hit.gameObject.layer))
- if(OnEnter != null) OnEnter.Invoke(hit);
- }
- public void OnTriggerStay(Collider hit) {
- if(triggerMask.LayerInMask(hit.gameObject.layer))
- if(OnStay != null) OnStay.Invoke(hit);
- }
- public void OnTriggerExit(Collider hit) {
- if(triggerMask.LayerInMask(hit.gameObject.layer))
- if(OnExit != null) OnExit.Invoke(hit);
- }
- /// <summary>
- /// A UnityEvent with a Collider parameter.
- /// </summary>
- [System.Serializable]
- public class TriggerEvent : UnityEvent<Collider> { }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement