BITKit/Packages/Common~/Scripts/Physics/OnPhysics.cs

49 lines
1.6 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
namespace BITKit
{
public class OnPhysics : MonoBehaviour
{
[Header(Constant.Header.Settings)]
public bool debug;
[Header(Constant.Header.Events)]
public UnityEvent<Collider> onTriggerEnter = new();
public UnityEvent<Collider> onTriggerExit = new();
public UnityEvent<Collider> onTriggerStay = new();
public UnityEvent<Collision> onCollisionEnter = new();
public UnityEvent<Collision> onCollisionExit = new();
public UnityEvent<Collision> onCollisionStay = new();
void OnTriggerEnter(Collider collider)
{
onTriggerEnter.Invoke(collider);
if (debug) Debug.Log(collider.name);
}
void OnTriggerExit(Collider collider)
{
onTriggerExit.Invoke(collider);
if (debug) Debug.Log(collider.name);
}
void OnTriggerStay(Collider collider)
{
onTriggerStay.Invoke(collider);
if (debug) Debug.Log(collider.name);
}
void OnCollisionEnter(Collision collision)
{
onCollisionEnter.Invoke(collision);
if (debug) Debug.Log(collision.collider.name);
}
void OnCollisionExit(Collision collision)
{
onCollisionExit.Invoke(collision);
if (debug) Debug.Log(collision.collider.name);
}
void OnCollisionStay(Collision collision)
{
onCollisionStay.Invoke(collision);
if (debug) Debug.Log(collision.collider.name);
}
}
}