| | using UnityEngine; |
| | using UnityEngine.Events; |
| |
|
| | public class GoalDetectTrigger : MonoBehaviour |
| | { |
| |
|
| | [Header("Trigger Collider Tag To Detect")] |
| | public string tagToDetect = "goal"; |
| |
|
| | [Header("Goal Value")] |
| | public float GoalValue = 1; |
| |
|
| | private Collider m_col; |
| | [System.Serializable] |
| | public class TriggerEvent : UnityEvent<Collider, float> |
| | { |
| | } |
| |
|
| | [Header("Trigger Callbacks")] |
| | public TriggerEvent onTriggerEnterEvent = new TriggerEvent(); |
| | public TriggerEvent onTriggerStayEvent = new TriggerEvent(); |
| | public TriggerEvent onTriggerExitEvent = new TriggerEvent(); |
| |
|
| | private void OnTriggerEnter(Collider col) |
| | { |
| | if (col.CompareTag(tagToDetect)) |
| | { |
| | onTriggerEnterEvent.Invoke(m_col, GoalValue); |
| | } |
| | } |
| |
|
| | private void OnTriggerStay(Collider col) |
| | { |
| | if (col.CompareTag(tagToDetect)) |
| | { |
| | onTriggerStayEvent.Invoke(m_col, GoalValue); |
| | } |
| | } |
| |
|
| | private void OnTriggerExit(Collider col) |
| | { |
| | if (col.CompareTag(tagToDetect)) |
| | { |
| | onTriggerExitEvent.Invoke(m_col, GoalValue); |
| | } |
| | } |
| | |
| | void Awake() |
| | { |
| | m_col = GetComponent<Collider>(); |
| | } |
| |
|
| | |
| | void Update() |
| | { |
| |
|
| | } |
| | } |
| |
|