1일1알

적 쉐이더(2D) 본문

유니티/Project Nammo

적 쉐이더(2D)

영춘권의달인 2024. 8. 9. 16:46

 

시야 범위 안에 들어왔을 때는 원래 모습대로 보인다.

시야 범위 바깥에 있을때는 보이지 않는다.

탐지 스킬을 사용했을 때는 특정 색으로 보인다.

 

위 3가지 조건을 만족하는 쉐이더를 제작하였다.

 

빛의 세기에 따라 픽셀의 색상을 결정해주는 방식을 사용했다.

빛의 세기가 ZeroLightIntensity에 설정한 값보다 작다면 알파값을 0으로 바꿔서 보이지 않게 하고 ZeroLightIntensity ~ DetectLightIntensity사이라면 픽셀의 색상을 DetectColor에 설정한 색으로 변경해주었다. DetectLightIntensity보다 큰 경우에는 원래 모습으로 보인다.

 

Enemy라는 Target Sorting Layer를 만들고 Enemy는 해당 Layer에만 반응하도록 설정하였다.

플레이어가 시야를 밝히는 곳에는 기본 light뿐만 아니라 Enemy에만 적용되는 Intensity가 1인 light도 추가하여 Enemy가 시야 범위에 들어왔을때는 원래 상태로 보이도록 해준다.

 

Sprite Custom Lit 쉐이더에서 해당 노드를 통해 픽셀에 들어오는 빛의 색상을 얻어올 수 있고, 이 값과 ZeroLightIntensity, DetectLightIntensity를 비교하여 픽셀에 알맞은 색을 지정해준다.

 

탐지 스킬을 사용할 때는 Enemy에만 반응하는 빛을 생성하여 빛의 세기가 ZeroLightIntensity ~ DetectLightIntensity사이에 들어오도록 한다.