Example #1
0
 private void OnTriggerEnter(Collider other)
 {
     //Init() 메소드 호출 전일시 충돌을 모두 무시한다.
     if (!isActive)
     {
         return;
     }
     //충돌체가 공격 대상이고, 아직 공격하지 않았어야 함
     if (attackInfo.TargetTag.Equals(other.tag) && !hitSet.Contains(other.gameObject))
     {
         hitSet.Add(other.gameObject);
         var hitscript = GameManager.Instance.Units[other.gameObject.name];
         var hitInfo   = hitscript.HitbyAttack(attackInfo, transform.position);
         //적용된 데미지가 0 초과일시 데미지 프린트
         if (hitInfo.Damage > 0.0f)
         {
             //데미지 이펙트
             GameManager.Instance.UI.PrintDamage(hitInfo.Damage, hitscript.transform.position);
         }
         //공격 성공 메소드 있을시 수행
         if (attackInfo.AttackSuccess != null)
         {
             attackInfo.AttackSuccess(hitInfo);
         }
         //최대 타격수 만족시 파괴
         if (++hitCount >= attackInfo.EnableHitCount)
         {
             DestoryThis();
         }
     }
     else if (IsHitWallOrFloor(other.tag))
     {
         DestoryThis();
     }
 }