유니티에서 색깔이 정상적으로 적용이 안 되는 이유
스크립트에서 오브젝트의 색상을 변경해야할 때 아무리 컬러를 적용해도 적용이 안될 때가 있다.
일반적으로 컬러를 적용할 때 아래와 같은 코드 형태로 컬러를 스크립트에서 적용한다. 그러나 이 방식을 통하면 'Color' 클래스가 정상적 값을 받을 수 없다. color 클래스는 각 색상 채널에 대해 0과 1사이의 부동 소수점 값을 받기 때문이다. 따라서 위 코드에서는 255와 같은 정수 값을 소수점 형태의 적절한 값으로 변환해주어야 한다. (아래 이미지를 보면 255,50,50의 값을 적용했지만 191,38,38 값이 적용된것을 볼 수 있다.)
cube.GetComponent<Renderer>().material.color = new Color(255, 50, 50);
유니티에서 색깔을 정상적으로 적용하는 방법
0과 1사이의 부동 소수점 값을 적용하기 위해 원하는 값에 255를 나눠 주면 됩니다. 그러면 255/255는 1이 되고 50/255f는 0.196078이 됩니다. 아래와 같이 적용하면 정상적인 컬러가 나타나는 것을 확인할 수 있습니다.
cube.GetComponent<Renderer>().material.color = new Color(255/255f, 50/255f, 50/255f);