본문 바로가기

Unity

Gradient 클래스로 컬러 변화 주기

Unity에는 Gradient라는 클래스가 있는데요.

Gradient는 여러분이 아시는 바와 같이 컬러에 변화를 주기 위해 사용됩니다.


예를 들면 ParticleSystem에서 StartColor값을 Gradient로 해주면




위 이미지처럼 Gradient 에디터로 색의 변화를 줄 수 있고 

정해준 색 변화에 따라 발생되는 파티클의 색도 달라지게 되죠.




자 그럼, C#스크립트 하나를 만들어주시고 UI -> Image를 만들어주세요.



위 스크립트는 Gradient 클래스를 public으로 하여 Inspector창에 표시되게 하고

float형 변수 t도 Inspector창에 표시하는데 범위를 0~1로 주는 슬라이드로 표시됩니다.


Start 함수에서는 Image 콤포넌트를 얻어오구요.

Update 함수에서 Image의 컬러를 변화시켜 줍니다.


Evaluate()라는 함수는 시간 변화에 따른 값을 산출해주는 함수입니다. 

(그러니까 매개변수로 넣어준 t에 해당하는 컬러를 반환하겠죠.  범위: 0 ~ 1)

매개변수는 float형 변수 하나가 들어갑니다. 




스크립트를 Image에 추가하면 Inspector View에 컬러를 선택할 수 있는 영역과 슬라이드가 하나 생성됩니다.




컬러 영역을 클릭하면 Gradient 에디터가 나타나고 사이사이 컬러를 추가 할 수 있습니다.


이제 플레이 버튼을 눌러주고 슬라이드를 요리조리 움직여주면 Image의 컬러가 변하는것을 볼 수 있습니다.