30 lines
965 B
C#
30 lines
965 B
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
namespace BITKit
|
|
{
|
|
public class PhysicsImpact : MonoBehaviour
|
|
{
|
|
private new Collider collider;
|
|
public event Action<Collision> OnPhysicsCollisionEnter;
|
|
[SerializeField] private Collider[] ignoreColliders;
|
|
private readonly HashSet<int> ignoreCollidersHash = new();
|
|
private void OnEnable()
|
|
{
|
|
collider = GetComponent<Collider>();
|
|
ignoreCollidersHash.Clear();
|
|
if (ignoreColliders is null) return;
|
|
foreach (var x in ignoreColliders)
|
|
{
|
|
ignoreCollidersHash.Add(x.transform.GetInstanceID());
|
|
}
|
|
}
|
|
|
|
private void OnCollisionEnter(Collision collision)
|
|
{
|
|
if(ignoreCollidersHash.Contains(collision.transform.GetInstanceID())) return;
|
|
OnPhysicsCollisionEnter?.Invoke(collision);
|
|
}
|
|
}
|
|
} |