유니티

GameObject 검색

잼잼재미 2023. 12. 11. 14:21

전체 검색 (GameObject)


  • 하이어라키 상의 모든 Object를 검색하기 때문에 속도가 느림 (Update에서 사용 x)
  • 한번만 사용하는 용도로 Start, Awake에서 사용
  • 비활성화 된 Object는 찾을 수 없음

 

 

Find


GameObject 이름으로 검색

public GameManager gameManager;

void Start()
{
    gameManager = GameObject.Find("GamaManager").GetComponent<GameManager>();
}

 

 

FindWithTag


  • GameObject Tag로 검색
  • FindGameObjectWithTag와 동일한 기능
  • 가급적 Find 보다는 FindWithTag 사용
public Transform Player { get; private set; }

private void Awake()
{
    Player = GameObject.FindWithTag("Player").transform;
}

 

 

자식 검색 (transform)


  • 비활성화 된 Object도 찾을 수 있음
  • / 로 손자, 증손자 등 경로 지정 가능

 

Find


GameObject 이름으로 검색

public GameManager gameManager;

void Start()
{
    // 자식
    gameManager = transform.Find("GamaManager").GetComponent<GameManager>();

    // 경로 지정 (손자)
    gameManager = transform.Find("Player/GamaManager").GetComponent<GameManager>();

    // 경로 지정 (증손자)
    gameManager = transform.Find("Player/Manager/GamaManager").GetComponent<GameManager>();
}

 

 

GetChild


자식의 순서로 검색

public GameManager gameManager;

void Start()
{
    // 자식 첫 번째
    gameManager = transform.GetChild(0).GetComponent<GameManager>();
}

'유니티' 카테고리의 다른 글

Rect Transform (앵커, 피봇)  (0) 2023.12.13
애니메이션 이벤트  (0) 2023.12.13
Object Pool  (0) 2023.12.08
싱글톤  (1) 2023.12.08
캐릭터 스텟 만들기 (ScriptableObject)  (0) 2023.12.08