Unity

유닛 투사체가 겹쳐있는 적 몬스터 동시 타격하는 문제

yeoul0714 2025. 1. 31. 16:22

방치형 게임에서 아군 유닛이 적 몬스터에게 투사체를 발사하는 로직을 개발했었습니다.

 

저의 개발 의도는 단일 대상 타격이었지만

 

유닛들이 절묘하게 겹쳐있으면 겹쳐있는 유닛들에게 다중으로 타격이 들어가는 문제가 있었습니다.

 

 

sol1. OntriggerEnter2D 들어오면 isHit 변수 true 로 만들어주고 isHit 변수가 true 이면 return 시킴

public void OnTriggetEndter2D(Collider2D other)
 {
     if(isHit) return;
     isHit=ture;
 }

문제 : 몬스터들이 절묘하게 겹쳐있으면 뚫려버리고 겹친 몬스터들 다 때림

 

 

sol2. 타겟으로 설정한 몬스터의 이름이랑 비교 (※ 몬스터들 이름이 다 달라야함 )

 public void OnTriggerEnter2D(Collider2D other)
    {
        if (other.name != targetMonster.name) // 핵심
            return;
        hitcount++;
        AdjustValueByType(bulletType, targetMonster.GetType();
        targetMonster.TakeDamage(damage);
        RelocateBullet();  
    }

 

 

피드백, 아이디어, 비판 환영합니다