Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.Events;
- public class TriggerZone : MonoBehaviour
- {
- public bool oneShot = false;
- private bool alreadyEntered = false;
- private bool alreadyExited = false;
- public string collisionTag;
- public UnityEvent onTriggerEnter;
- public UnityEvent onTriggerExit;
- private void OnTriggerEnter2D(Collider2D collision)
- {
- if (alreadyEntered)
- return;
- if (!string.IsNullOrEmpty(collisionTag) && !collision.CompareTag(collisionTag))
- return;
- onTriggerEnter?.Invoke();
- if (oneShot)
- alreadyEntered = true;
- }
- private void OnTriggerExit2D(Collider2D collision)
- {
- if (alreadyExited)
- return;
- if (!string.IsNullOrEmpty(collisionTag) && !collision.CompareTag(collisionTag))
- return;
- onTriggerExit?.Invoke();
- if (oneShot)
- alreadyExited = true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment