Menu
CoddyTech

Inspector에서 참조 설정하기

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

필드에는 다른 객체를 넣을 수 있습니다. Transform 또는 GameObject와 같은 타입을 지정하면 Inspector에 빈 슬롯이 표시되고, Hierarchy에서 객체를 끌어다 놓아 채울 수 있습니다. 이 카메라 스크립트는 player에 끌어다 놓은 객체를 따라가며, 그 객체보다 3유닛 위, 6유닛 뒤에 머뭅니다:

public Transform player;

void Update()
{
    transform.position = player.position + new Vector3(0, 3, -6);
}

비어 있는 슬롯은 None으로 표시되며, 해당 슬롯을 사용하는 첫 번째 줄은 매 프레임 다음 오류를 발생시킵니다: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. 메시지의 다음 줄에는 어떻게 해야 하는지 나와 있습니다: You probably need to assign the player variable of the CameraFollow script in the inspector. 필드와 스크립트의 이름이 명시되어 있으므로 어떤 슬롯을 채워야 하는지 알 수 있습니다.

일부 스크립트는 슬롯이 비어 있어도 작동해야 합니다. Unity에서는 빈 슬롯이 null과 동일하게 비교되므로, 이런 스크립트는 사용하기 전에 확인합니다. Update()의 줄을 if (player != null)로 감싸면 플레이어가 없는 카메라는 오류를 발생시키지 않고 제자리에 머뭅니다.

challenge icon

챌린지

중급

각 경비병은 각자의 초소로 걸어갑니다. 씬에서 Guard1의 Inspector는 Post1 오브젝트를 post라는 필드에 넣습니다. Guard2의 초소는 아직 만들어지지 않아 post 슬롯이 비어 있습니다.

  • Guard 스크립트에 post라는 이름의 Transform 필드를 추가하세요.
  • 경비병은 초소가 나중에 이동하더라도 초소 위에 멈출 때까지 초소의 위치로 초당 speed 유닛의 속도로 걸어갑니다.
  • 초소 슬롯이 비어 있는 경비병은 오류 없이 제자리에 머뭅니다.

Play를 누르고, Hierarchy에서 각 경비병을 선택해 Post 슬롯을 확인한 다음 Check를 누르세요.

직접 해보기

using UnityEngine;

public class Guard : MonoBehaviour
{
    // post: 이 경비병이 걸어갈 Transform으로, Inspector에서 설정합니다
    public float speed = 2f;

    void Update()
    {
        // speed의 속도로 post를 향해 걸어갑니다. post 슬롯이 비어 있는 경비병은 제자리에 머뭅니다.
    }
}
quiz icon실력 점검

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

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