Menu
CoddyTech

컴포넌트 가져오기

Coddy Unity 여정의 Unity 스크립팅 기초 섹션에 포함된 레슨. 67개 중 30번째.

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까지입니다.

challenge icon

챌린지

중급

신호등은 빨간색으로 시작합니다. 클릭할 때마다 다음 색으로 바뀝니다. 순서는 빨간색, 노란색, 초록색, 다시 빨간색이며, 이런 식으로 계속됩니다.

Start()에서 Renderer를 한 번 가져와 필드에 저장하세요. Color.red, Color.yellow, Color.green을 사용하세요.

Play를 누르고 게임을 몇 번 클릭한 다음 Check를 누르세요.

직접 해보기

using UnityEngine;

public class SignalLight : MonoBehaviour
{

    void Start()
    {
    }

    void Update()
    {
        // 클릭할 때마다: 빨간색, 그다음 노란색, 그다음 초록색, 다시 빨간색
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

Unity 스크립팅 기초의 모든 레슨