내일배움캠프 22일차 TIL <Unity 입문 프로젝트 TIL> 05/09

정광훈(Unity_9기)·2025년 5월 9일

TIL (Today I Learned)

목록 보기
34/110
post-thumbnail
public GameObject gameUICanvas; // 인스펙터에서 오브젝트 지정하게 해줌
TextMeshProUGUI currentScoreTxt; // 현재 점수

Transform gameCanvas = gameUICanvas.transform;
currentScoreTxt = gameCanvas.Find("CurrentScoreText").GetComponent<TextMeshProUGUI>();
--------------------------------------------------

TextMeshProUGUI scoreText;
scoreText = transform.Find("ScoreText").GetComponent<TextMeshProUGUI>();

currentScoreTxt = gameCanvas.Find("CurrentScoreText").GetComponent(); 와

scoreText = transform.Find("ScoreText").GetComponent(); 의 차이점

간단하게 생겼지만, 매번 사용할 때마다 헷갈리고 문제가 발생하여 시간을 잡아먹는다.


탐색 기준 오브젝트

첫 번째 코드는 gameCanvas라는 별도의 특정 오브젝트를 기준으로 자식을 탐색

두 번째 코드는 현재 스크립트가 붙어 있는 오브젝트를 기준으로 자식을 탐색

결론적으로, 어떤 코드를 사용해야 할지는 UI 요소들의 계층 구조에 따라 결정

CurrentScoreText가 gameCanvas 오브젝트의 자식이라면
첫 번째 코드를 사용

ScoreText가 현재 스크립트가 붙어 있는 오브젝트의 자식이라면
두 번째 코드를 사용

해당 스크립트를 어떤 오브젝트에 붙일건지 생각하고 코드를 잘 사용하자.

0개의 댓글