인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

UI 자동화 #1

Componet에 대한 질문

21.04.10 06:03 작성

·

154

1

안녕하세요 Component에 대한 질문입니다.

Utill 코드를 작성하다 든 의문입니다.

(지금부터 작성하는 질문에 제가 잘못 생각하고 있는 부분이 있다면 말씀해주시면 감사하겠습니다.)

UI_Button

   PointButton

          PointText

   ScoreText

현재 계층도가 이렇게 있다고 했을 때, 자동화 하는 이유가  PointButton, PointText, ScoreText 이 셋을 코드상에서 찾기 위함으로 이해했습니다.

곰곰히 생각해보니 GetComponentsInChildren, GetComponent 이 함수들은 Component를 반환하는 함수이지 UI_Button 산하에 있는 PointButton, PointText,   ScoreText와 같은 GameObject를 찾는 함수는 아니라고 생각했습니다. 유니티 공식 문서를 찾아보니 결국 반환값은  GameObject에 부착된 componet를 반환하더군요. 

질문1 구현하려는 목적이 GameObject가 아닌 GameObject에 달린 컴포넌트를 찾는 것이 맞나요?

실제로 그런지 확인을 하려고 디버깅을 하는데 두번째 궁금증이 생깁니다. 저 base는 어떤걸 나타내는 건가요? base에 PointText라고 적혀있어서 값이 componet가 아닌 GameObject라는 다소 엉뚱한 생각이 조금 듭니다. 저 base는 컴포넌트가 부착된 GameObject에 대한 정보를 담고있는 건가요?

사적인 질문) 선생님은 호드인가요 얼라이언스인가요

답변 2

3

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2021. 04. 10. 13:53

질문1)

네 Component를 찾는게 맞습니다.

질문2)

Component가 상속 구조로 되어 있으니
base는 상위 객체를 얘기하는 것일테고 GameObject는 아닙니다.
다만 component의 name은 실제로
component가 붙은 GameObject의 name을 반환합니다.

질문3)

실리를 챙기는 박쥐파라서
레이드는 사람이 많은 호드로 돌렸고
투기장은 급장이 기본으로 있는 휴먼으로 돌렸습니다.

0

tlsgmlwo1님의 프로필 이미지

2024. 08. 08. 00:30

디버깅 관련 내용입니다。 여기 내용과 비슷한지는 모르겠지만、 비슷한 맥락이라 생각되어 여기에 문의를 남깁니다。

 

브레이크 상태에서 2번실행하여 _objects 값을 확인시에 [0]번째 값이 null로 노출됩니다.

[1]번째 값은 "ScoreText (UnityEngine.UI.Text)"로 노출됩니다.

 

수업내용에서는 [0]번째 값은 "PointText (UnityEngine.UI.Text)"로 노출되어야 하는데 NULL로 노출되어 문의를 남깁니다. 확인부탁드립니다. 감사합니다.

image.png

 참고

프리탭 형태는 다음과 같습니다.

ScoreText는 레거시Text이고

PointText는 TextMeshPro입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기