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

41 lines
1.2 KiB
C#

using UnityEngine;
public class ProjectileHitChecker : MonoBehaviour
{
public bool Off_OnlyThisObj_byHit = false;
public bool NoDMG = false;
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); }
private void OnParticleCollision(GameObject other)
{
ProcessCollider(other.GetComponent<Collider>());
}
private void ProcessCollider(Collider other)
{
if (m_ProjectileBase.ProcessCollider(other, !Off_OnlyThisObj_byHit, NoDMG) && Off_OnlyThisObj_byHit)
gameObject.SetActive(false);
}
}