[Unity 오류해결] new Color를 이용한 색깔 적용이 안될때 해결방법

유니티에서 색깔이 정상적으로 적용이 안 되는 이유

스크립트에서 오브젝트의 색상을 변경해야할 때 아무리 컬러를 적용해도 적용이 안될 때가 있다.

일반적으로 컬러를 적용할 때 아래와 같은 코드 형태로 컬러를 스크립트에서 적용한다. 그러나 이 방식을 통하면 'Color' 클래스가 정상적 값을 받을 수 없다. color 클래스는 각 색상 채널에 대해 0과 1사이의 부동 소수점 값을 받기 때문이다. 따라서 위 코드에서는 255와 같은 정수 값을 소수점 형태의 적절한 값으로 변환해주어야 한다. (아래 이미지를 보면 255,50,50의 값을 적용했지만 191,38,38 값이 적용된것을 볼 수 있다.)

 

 cube.GetComponent<Renderer>().material.color = new Color(255, 50, 50);

 

new color 비정상으로 적용

 


유니티에서 색깔을 정상적으로 적용하는 방법

0과 1사이의 부동 소수점 값을 적용하기 위해 원하는 값에 255를 나눠 주면 됩니다. 그러면 255/255는 1이 되고 50/255f는 0.196078이 됩니다.  아래와 같이 적용하면 정상적인 컬러가 나타나는 것을 확인할 수 있습니다.

 

cube.GetComponent<Renderer>().material.color = new Color(255/255f, 50/255f, 50/255f);

 

new color 정상으로 적용

 


참고 문헌

 

[Unity] new Color가 제대로 적용되지 않을 때 (색깔)

유니티에서 컬러 값을 스크립트로 조정해줄 때 txt.color = new Color(255, 10, 10); 이런식으로 조정하면 색깔이 제대로 바뀌지 않는 경우가 발생한다. 그럴 경우 txt.color = new Color(255/ 255f, 10/ 255f, 10/ 255f,

unitys.tistory.com