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

장대용님의 프로필 이미지
장대용

작성한 질문수

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

Entity

Entity 질문 있습니다.

작성

·

140

0

private Transform GetTransformSocket(Transform root, string socketName)

{

if (root.name == socketName)

return root;

foreach(Transform child in root)

{

var socket = GetTransformSocket(child, socketName);

if (socket)

return socket;

}

return null;

}

 

재귀에서 child를 계속 찾는다는게 이해가 가지 않습니다.

child는 그냥 변수명 아닌가요?ㅠ

답변 1

0

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

수강해주셔서 감사합니다.

image
위 Image를 예로, 해당 함수의 root 변수로 Merchant 객체를 넣고, socketName 변수로 "control-toe-roll.r" 문자열을 넣어주면

GetTransformSocket(merchant, "control-toe-roll.r");

Image의 Merchant GameObject Tree에서 control-toe-roll.r GameObject를 찾아오게 됩니다.
Root Object의 자식 객체들의 이름을 조사해가며 같은 이름을 가진 자식 객체를 찾아오는겁니다.

강의에서 재귀 과정을 설명드리는 부분을 한번 더 보신 뒤 위 Image를 가지고
GetTransformSocket(merchant, "control-toe-roll.r");
이 Code가 어떻게 동작하는지 직접 따라가보시면 이해가 더 잘 되실겁니다.

감사합니다.

장대용님의 프로필 이미지
장대용

작성한 질문수

질문하기