728x90
반응형
- 개요
배치한 유닛의 무기의 에너지가 충전되는 시각 효과를 추가한다
- 스크립트 작업
1) VisualEffect_CrossbowTower 클래스

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

Awake 함수에 위와 같이 로직을 추가한다
메쉬 렌더러 컴포넌트로부터 사용중인 머티리얼의 인스턴스를 생성하여 material 변수에 저장한다
이후 CoChangeEmissionOfMaterial 함수를 호출하여 머티리얼의 발광도를 설정한다

Update 함수를 추가하고 UpdateEmissionColor 함수를 호출하여
머티리얼의 실제 발광 색상과 밝기를 계산하여 적용한다

CoChangeEmissionOfMaterial 코루틴 함수의 로직은 위와 같다
인자로 받은 시간동안 보간을 사용하여 머티리얼의 발광 강도를 서서히 증가시킨다

UpdateEmissionColor 함수의 로직은 위와 같다
Lerp 함수를 사용하여 현재 변화 수치에 따라 startColor과 endColor를 섞고
HDR 발광 효과를 위해 LinearToGammaSpace 함수를 호출하여 감마 공간 변환을 섞은 결과에 적용한다
최종 완성된 색상을 머티리얼에 적용한다

외부에서 호출하여 충전 효과를 연출하는 PlayReloadVFX 함수의 로직은 위와 같다
CoChangeEmissionOfMaterial 코루틴 함수를 호출하여 공격 대기 시간의 절반 시간동안 충전 효과를 연출한다
2) Player_TowerCrossbow 클래스

Attack 함수를 위와 같이 수정하여 레이저를 발사하는 VFX 효과를 연출한 후에
PlayReloadVFX 함수를 호출하여 에너지를 재장전하는 VFX 효과를 연출한다
- 최종 실행 결과

728x90
반응형
'유니티 엔진 - 게임 프로젝트 > 타워 디펜스 게임' 카테고리의 다른 글
| 데미지 시스템 - 1) 적 추적 방식 개선 (0) | 2026.06.01 |
|---|---|
| 유닛 세팅 - 최종) 무기의 장전 효과 연출 (0) | 2026.05.26 |
| 유닛 세팅 - 2) 유닛의 공격 이펙트 추가 (0) | 2026.05.26 |
| 유닛 세팅 - 1) 타워 유닛 클래스 생성 (0) | 2026.05.25 |
| 적 세팅 - 최종) 웨이브 시스템 추가 (0) | 2026.05.19 |