유니티 엔진 - 게임 프로젝트/타워 디펜스 게임

데미지 시스템 - 최종) 유닛의 타겟 설정 방식과 공격 FX 효과 개선

monstro 2026. 6. 2. 18:36
728x90
반응형

- 개요

설치한 유닛의 타겟 설정 방식에 선택 옵션을 추가하여 적을 공격중인 상태에서도

우선 공격해야 할 적이 탐지되면 공격할 적을 변경할 수 있도록 설정한다

또, 적을 공격하면서 재생하는 FX 효과 적을 공격하는 경우에만 재생하도록 수정한다

 

- 스크립트 작업

1) Player_TowerBase 클래스

 

위와 같이 멤버변수를 추가한다

  • dyanamicTargetChange 멤버변수 : 상황에 맞춰 공격할 적을 변경할지 설정하는 불리언 변수
  • targetCheckInterval 멤버변수 : 공격할 적을 변경하는 경우 변경하기 위한 간격
  • lastTimeCheckedTaget 멤버변수 : 공격할 적을 변경하기 위한 시간을 측정하는 타이머

 

 

UpdateTargetInAttacking 함수를 추가하고 위와 같이 로직을 구성한다

상황에 맞춰 공격할 적을 변경해야 하는 경우 시간마다 FindEnemyWithinRange 함수를 호출한다

 

 

Update 함수의 로직에서 UpdateTargetInAttacking 함수를 호출한다

 

2) Player_TowerCrossbow 클래스

 

Attack 함수의 로직을 위와 같이 수정한다

석궁 타워의 석궁으로부터 Raycast를 수행하고 맞은 적으로부터 TakeDamage 함수를 호출한다

이후 맞은 적을 Enemy_Base로 형변환하고 EnableVisualEffect 함수에 인자로 넘겨주어

적을 공격한 경우에만 VFX 효과를 재생한다

 

3) VisualEffect_CrossbowTower 클래스

 

EnableVisualEffect 함수CoEnableVisualEffect 함수의 매개변수를 위와 같이 수정한다

인자로 받은 newEnemy를 사용하여 currentEnemy 변수의 값을 설정한다

 

- 최종 실행 결과

 

중심에 위치한 석궁 타워의 경우 기본 타입의 적을 우선 공격하고, 나머지 타워빠른 타입의 적을 우선 공격한다

실행 결과에서 보이듯이 적을 향해 Raycast가 이루어진 경우에만 FX 효과를 재생하고

우선 공격해야 할 타입의 적이 탐지되면 해당 적을 우선 공격하는 것을 확인할 수 있다

728x90
반응형