Project_WL/Assets/Script/Character/Projectile/Projectile/ProjectileHitChecker.cs

41 lines
1.2 KiB
C#
Raw Normal View History

2024-12-15 01:39:39 +00:00
using UnityEngine;
public class ProjectileHitChecker : MonoBehaviour
{
public bool Off_OnlyThisObj_byHit = false;
2025-01-18 23:21:18 +00:00
public bool NoDMG = false;
2024-12-15 01:39:39 +00:00
ProjectileBase m_ProjectileBase;
BoxCollider m_Collider;
Vector3 ColiiderOriginalSize;
bool setInit = false;
private void Init()
{
if (setInit) return;
setInit = true;
m_Collider = GetComponent<BoxCollider>();
ColiiderOriginalSize = m_Collider.size;
}
public void Set(ProjectileBase pb) { m_ProjectileBase = pb; }
public void Set_Size(float addSize)
{
Init();
m_Collider.size = ColiiderOriginalSize + Vector3.one * addSize;
}
public BoxCollider Get_Collider() { Init(); return m_Collider; }
void OnTriggerEnter(Collider other) { ProcessCollider(other); }
void OnCollisionEnter(Collision collision) { ProcessCollider(collision.collider); }
2025-01-02 07:33:09 +00:00
private void OnParticleCollision(GameObject other)
{
ProcessCollider(other.GetComponent<Collider>());
}
2024-12-15 01:39:39 +00:00
private void ProcessCollider(Collider other)
{
2025-01-18 23:21:18 +00:00
if (m_ProjectileBase.ProcessCollider(other, !Off_OnlyThisObj_byHit, NoDMG) && Off_OnlyThisObj_byHit)
2024-12-15 01:39:39 +00:00
gameObject.SetActive(false);
}
}