컴포넌트 가져오기
Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 85개 중 44번째.
GameObject는 컴포넌트를 담는 컨테이너입니다. Transform, 오브젝트를 그리는 MeshRenderer, 콜라이더, 스크립트 등이 여기에 포함됩니다. GetComponent<Renderer>()는 같은 오브젝트에 있는 해당 유형의 컴포넌트를 반환하며, 스크립트는 이를 통해 해당 컴포넌트의 동작을 변경합니다. transform은 Transform을 가져오는 바로 가기이며, 다른 컴포넌트는 직접 가져와야 합니다.
이 큐브는 Space 키를 누르면 빨간색으로 변합니다. Start()에서 Renderer를 한 번 찾아 필드에 저장합니다. GetComponent는 호출될 때마다 오브젝트의 컴포넌트를 검색하며, 검색 결과는 달라지지 않습니다.
Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rend.material.color = Color.red;
}
}rend.material을 처음 사용하면 이 오브젝트만의 머티리얼 복사본이 만들어지므로, 해당 머티리얼을 공유하던 다른 오브젝트의 색상은 그대로 유지됩니다. Unity는 Color.red, Color.green, Color.blue, Color.yellow, Color.gray처럼 일부 색상 이름을 제공합니다. new Color(r, g, b)를 사용하면 그 밖의 색상을 만들 수 있으며, 각 값의 범위는 0에서 1입니다.
챌린지
중급클릭할 때마다 신호등이 빨간색, 노란색, 초록색 순서로 바뀐 다음 다시 빨간색으로 바뀝니다.
Renderer rend;필드를 추가하고,Start()에서GetComponent<Renderer>()를 사용해 설정하세요.Input.GetMouseButtonDown(0)일 때int step필드에 1을 더하고, 값이 3이 되면 다시 0으로 설정하세요.- 단계가 0, 1, 2일 때
rend.material.color를 각각Color.red,Color.yellow,Color.green으로 설정하세요.
‘플레이’를 누르고 게임을 클릭하세요. 신호등의 색이 바뀝니다. 그런 다음 ‘확인’을 누르세요.
직접 해보기
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// 클릭할 때마다: 빨간색, 노란색, 초록색, 다시 빨간색 순서
}
}
Unity 스크립팅 기초의 모든 레슨
직접 연습해 보세요: Unity 플레이그라운드