2022-10-29 20:24:53 -04:00

40 lines
1.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
public class TriggerZone : MonoBehaviour
{
[SerializeField]
private Triggerable linkedObj;
[SerializeField]
private bool onEnter = true, onStay = false, OnExit = false;
public UnityEvent enterEvent;
public UnityEvent stayEvent;
public UnityEvent exitEvent;
// Start is called before the first frame update
private void OnTriggerEnter(Collider other) {
if(!onEnter)return;
if(other.gameObject.tag.Equals("Player")){
linkedObj?.TriggerEvent(other);
enterEvent?.Invoke();
}
}
private void OnTriggerStay(Collider other) {
if(!onStay)return;
if(other.gameObject.tag.Equals("Player")){
linkedObj?.TriggerEvent(other);
stayEvent?.Invoke();
}
}
private void OnTriggerExit(Collider other) {
if(!OnExit)return;
if(other.gameObject.tag.Equals("Player")){
linkedObj?.TriggerEvent(other);
exitEvent?.Invoke();
}
}
}