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(); 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()); } private void ProcessCollider(Collider other) { if (DSUtil.CheckNull(m_ProjectileBase)) return; if (m_ProjectileBase.ProcessCollider(other, !Off_OnlyThisObj_byHit, NoDMG) && Off_OnlyThisObj_byHit) gameObject.SetActive(false); } }