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

유닛 세팅 - 3) 무기의 충전 효과 연출

monstro 2026. 5. 26. 15:56
728x90
반응형

- 개요

배치한 유닛의 무기의 에너지가 충전되는 시각 효과를 추가한다

 

- 스크립트 작업

1) VisualEffect_CrossbowTower 클래스

 

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

  • meshRenderer 멤버변수 : 충전 상태를 표현하기 위한 메쉬 렌더러 컴포넌트
  • maxMaterialIntensity 멤버변수 : 머티리얼을 변화시키기 위한 최대 수치
  • startColor 멤버변수 : 충전중이 아닐 때의 머티리얼의 색
  • endColor 멤버변수 : 충전이 완료되었을 때의 머티리얼 색
  • currentMaterialIntensity 멤버변수 : 머티리얼의 현재 변화 수치
  • material 멤버변수 : 메쉬 렌더러에서 사용중인 머티리얼의 인스턴스

 

 

Awake 함수에 위와 같이 로직을 추가한다

메쉬 렌더러 컴포넌트로부터 사용중인 머티리얼의 인스턴스를 생성하여 material 변수에 저장한다

이후 CoChangeEmissionOfMaterial 함수를 호출하여 머티리얼의 발광도를 설정한다

 

 

Update 함수를 추가하고 UpdateEmissionColor 함수를 호출하여

머티리얼의 실제 발광 색상밝기를 계산하여 적용한다

 

 

CoChangeEmissionOfMaterial 코루틴 함수의 로직은 위와 같다

인자로 받은 시간동안 보간을 사용하여 머티리얼의 발광 강도를 서서히 증가시킨다

 

 

UpdateEmissionColor 함수의 로직은 위와 같다

Lerp 함수를 사용하여 현재 변화 수치에 따라 startColorendColor를 섞고

HDR 발광 효과를 위해 LinearToGammaSpace 함수를 호출하여 감마 공간 변환섞은 결과에 적용한다

최종 완성된 색상을 머티리얼에 적용한다

 

 

외부에서 호출하여 충전 효과를 연출하는 PlayReloadVFX 함수의 로직은 위와 같다

CoChangeEmissionOfMaterial 코루틴 함수를 호출하여 공격 대기 시간의 절반 시간동안 충전 효과를 연출한다

 

2) Player_TowerCrossbow 클래스

 

Attack 함수를 위와 같이 수정하여 레이저를 발사하는 VFX 효과를 연출한 후

PlayReloadVFX 함수를 호출하여 에너지를 재장전하는 VFX 효과를 연출한다

 

- 최종 실행 결과

728x90
반응형