
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가 현재 스크립트가 붙어 있는 오브젝트의 자식이라면
두 번째 코드를 사용
해당 스크립트를 어떤 오브젝트에 붙일건지 생각하고 코드를 잘 사용하자.