This commit is contained in:
CortexCore
2023-06-05 16:25:06 +08:00
parent 9027120bb8
commit 4565ff2e35
2947 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
namespace BITKit.Sensors
{
public class TriggerSensor : MonoBehaviour
{
[Header(Constant.Header.Events)]
public UnityEvent<Collider> onDetected = new();
public UnityEvent<Collider> onLost = new();
[Header(Constant.Header.InternalVariables)]
List<Collider> _detected = new();
void OnTriggerEnter(Collider collider)
{
if (IsValid(collider))
{
_detected.Add(collider);
onDetected.Invoke(collider);
}
}
void OnTriggerExit(Collider collider)
{
if (_detected.TryRemove(collider))
{
onLost.Invoke(collider);
};
}
void OnCollisionEnter(Collision collision)
{
var collider = collision.collider;
if (IsValid(collider))
{
_detected.Add(collider);
onDetected.Invoke(collider);
}
}
void OnCollisionStay(Collision collision)
{
var collider = collision.collider;
if (_detected.TryRemove(collider))
{
onLost.Invoke(collider);
};
}
bool IsValid(Component self)=>true;
}
}