본문 바로가기
Unity 포트폴리오/플젝2. 3D FPS게임

Unity UI : 이미지 색상 바꾸기 / Color와 Color32의 차이

by jjiing 2022. 6. 21.

(본 글은 프로젝트 중 공부했던 내용을 개인적으로 기록하기 위한 용도입니다.)

 

원래 흰색 이미지 이던 UI를

FuelCellRatio가 1이 되면 초록색으로 컬러를 변경해주는 코드이다.

 private void FuelCellSliderControl()
    {
        gunChargeShot.fillAmount = 1-gun.FuelCellRatio;
        if (gunChargeShot.fillAmount == 1)
        {
            gunChargeShot.color = new Color32(0, 255, 168, 255);
            gunChargeShotQ.color = new Color32(0, 255, 168, 255);

        }
        else
        {
            gunChargeShot.color = Color.white;
            gunChargeShotQ.color = Color.white;
        }
    }

단순히 컬러의 값을 직접 설정해 주면 되는 코드인데, 적용이 안되는 경우가 있다.

그럴 경우에는 ColorColor32를 구분해서 사용했는지 한번 체크해보자.

 

Color 구조체각각 24비트까지만 적용이 되어 RGBA를 표현하고
Color32 구조체각 8비트 영역을 더해 더 많은 컬러를 표현할 수 있는 차이이다.

 

더 쉽게 설명하자면

인스펙터 창에 직접 뜨는 것처럼 0~255 사이의 int 형태로 컬러를 표현하려면 Color32를 사용해야하고,

new Color(0,0.6f,0.6f, 0.5f)와 같이 1보다 작은 float 형태로 표현할 때는 Color를 사용해줘야한다.

 

 

 

결과)

잘 안보이지만 기존 컬러에서 FuelCellRatio가 1이되면 초록색 이미지로 변한다.