2022-10-29 15:02:18 -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();
enterEvent?.Invoke();
}
}
private void OnTriggerStay(Collider other) {
if(!onStay)return;
if(other.gameObject.tag.Equals("Player")){
linkedObj.TriggerEvent();
stayEvent?.Invoke();
}
}
private void OnTriggerExit(Collider other) {
if(!OnExit)return;
if(other.gameObject.tag.Equals("Player")){
linkedObj.TriggerEvent();
exitEvent?.Invoke();
}
}
}