Menu
CoddyTech

이름으로 찾기

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

GameObject.Find("Player")는 씬에서 이름이 정확히 일치하는 활성 오브젝트를 검색해 반환하며, 그런 오브젝트가 없으면 null을 반환합니다. Inspector에서 필드를 연결하는 수고를 덜어 주지만, 씬의 모든 오브젝트를 살펴보는 대가가 따릅니다. 따라서 Start()에서 한 번만 호출하고 결과를 필드에 저장하세요. 이 보안 카메라는 게임이 시작될 때 Player를 찾아 매 프레임 추적합니다:

private Transform player;

void Start()
{
    player = GameObject.Find("Player").transform;
}

void Update()
{
    transform.LookAt(player);
}

이름은 대소문자와 공백을 포함해 정확히 일치해야 합니다. "player"나 "Player "는 아무것도 찾지 못합니다. Find는 비활성(숨겨진) 오브젝트도 건너뜁니다. 검색에 실패하면 조용히 null을 반환하고, 결과를 사용하는 다음 줄에서 오류가 나타납니다. 여기서는 .transform이 NullReferenceException을 발생시킵니다. "Car/Wheel"과 같은 경로는 Car의 자식인 Wheel을 찾습니다.

challenge icon

챌린지

중급

로버는 목표까지의 거리를 보고합니다.

  • Start()에서 Goal이라는 이름의 오브젝트를 찾아 Transform을 goal에 저장합니다.
  • 스페이스바를 누를 때마다 로버에서 목표까지의 거리를 Distance to goal: 5와 같은 형식으로 기록합니다.

목표는 움직일 수 있으므로 스페이스바를 누르는 순간에 거리를 측정합니다.

Play를 누르고 게임을 클릭한 다음 스페이스바를 누른 뒤 Check를 누르세요.

직접 해보기

using UnityEngine;

public class Beacon : MonoBehaviour
{
    private Transform goal;

    void Start()
    {
        // Goal이라는 이름의 객체를 찾아 그 Transform을 goal에 저장합니다.
    }

    void Update()
    {
        // Space: 목표까지의 거리를 로그에 기록합니다.
    }
}
quiz icon실력 점검

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

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