3D 오브젝트 Color 변경내가 처음 유니티를 공부하면서 책도 찾아보고 유튜브도 돌아다니며 공부하다가, 처음으로 띵하고 막혔던 부분이 게임 도중 어떤 이벤트가 발생 시 오브젝트의 색깔을 바꾸고 싶었는데 이 부분을 엄청나게 헤매었던 기억이 있다. 그래서 이 글에서는 유니티 창에서의 3D Object Color 변경 방법과 Script 상에서의 변경 방법을 알아보고자 한다. ■ Unity 창에서의 3D 오브젝트 Color 변경유니티를 열어 3D Project를 생성하고, Capsule과 Plane을 생성해 보자. 생성된 오브젝트 중 Capsule의 색을 빨간색으로 변경해 보자. 3D 오브젝트 Capsule 과 Plane 생성생성 후 Project 창에서 우클릭 → Create → Material을 선택한다. Project 창에서 우클릭 → Create → Material 선택아래와 같이 파란 동그라미 아이콘이 생성될 것이다. Material 아이콘Material의 색을 빨강으로 변경할 것이기에 이름을 Red로 바꿔 봤다. Material을 클릭해보면 인스펙터 창에 Main Maps 가 보일 것이다. Main Maps 바로 밑에 Albedo라고 하여 네모난 색깔 창과 스포이트 모양이 보일 것이다. 스포이드 모양 옆에 네모를 클릭해보자. 아래와 같이 RGB 색을 고를 수 있는 창이 뜬다. 이 중 자신이 Capsule에 적용하고 색깔을 지정한다. 필자는 빨간색으로 선택했다. Material Inspector 창Material의 색을 변경했으면 색을 Capsule 에 적용해보자. Material을 드래그하여 Capsule에 갖다 넣자. 3D Object에 Material 적용아래와 같이 Capsule의 색이 변경된 것을 확인할 수 있다. Capsule 색상변경 완료■ 스크립트(Script)로 색 변경하기게임을 만들다 보면 처음 지정된 색을 게임 끝까지 가져가는 경우도 있지만, 어떤 이벤트나 주변 상황에 따라 오브젝트의 색을 변경해야 할 때가 있다. 나는 기본이 없는 백지상태였기 때문에 이것을 해결하는데만 며칠을 고생했다. 간단하게 마우스 클릭 시 Capsule 색이 빨간색 ↔ 파란색으로 변하는 스크립트를 작성해 보자. 프로젝트 창에 마우스 우클릭 → Create → C# Script를 선택해서 C# 스크립트를 생성한다. C# 스크립트 이름을 'ColorChange'로 변경하고 Capsule 오브젝트에 드래그하여 끌어다 넣는다. 스트립트 삽입그리고 스크립트를 열어보자. 간단하게 아래와 같이 코드를 입력한다.
스크립트를 간단히 살펴보면, 1. Start 함수 안에 capsuleColor라는 변수에 Renderer Renderer 컴포넌트를 지정해 주었다. 2. 업데이트 문에서는 마우스 버튼의 입력을 감지한다. - 버튼 입력이 감지가 될 경우 material의 색이 파란색이 아니라면 파란색으로, - 파란색일 경우 빨간색으로 변환되도록 입력하였다. 저장하고 unity를 돌려보면 마우스 클릭 시마다 빨강, 파랑으로 왔다 갔다 하는 것을 볼 수 있다. 처음 무색에서 빨간색, 파란색으로 변경■ 유니티에서 문자로 지원하는 색상위 Script에서 보셨듯이, Color.red를 치면 빨간색이 되고, Color.blue를 치면 파란색이 됩니다. 이렇게 RGB 코드가 아닌 문자로 입력할 수 있는 Color는 투명까지 포함해서 총 10가지입니다. 아래 문자들을 Color. 뒤에 연결하여 적으면 해당되는 색깔이 나옵니다. Unity에서 지원하는 문자 Color여러분, 위의 Color를 지원하는 문자 중 혹시 이상한 점 발견하셨나요? 회색이 grey, gray 두 가지로 입력할 수 있게 되어 있네요. 그렇다면 문자열 외에 다른 색은 어떻게 표현할 수 있을까요? 아래 큰 따옴표(" ") 안의 노란색 숫자 부분에 RGB 숫자를 0~255까지 입력하면 됩니다.
예를 들면 white 같은 경우 RGB가 (255, 255, 255) 이니까 이와 같이 입력하면 흰색으로 변경됩니다. |