728x90
반응형
개발을 하다 보면 해당 Gameobject를 포함하고 있는
하위(자식) object들이나 상위(부모) object를 알아야하거나
가져와야하는 경우가 많다.
해당 접근 방법을 어떻게 사용하냐에 따라서 다양한 방법으로 오브젝트에 접근하는 방법이 있다.
1. 상위(부모) 오브젝트 접근하기
transform.parent는 해당 스크립트를 가진 오브젝트의 바로 위에있는 부모를 가져온다.
//현재 오브젝트의 부모 찾기
public class x : MonoBehaviour{
GameObject parent = null;
void Start()
{
gameobject = transform.parent.gamObject; //해당 오브젝트 부모의 오브젝트
gameobject = transform.GetComponentInParent<Gameobject>(); //해당 오브젝트 부모의 오브젝트
}
}
만약에 해당 스크립트를 가진 Object가
부모의 부모(Object1) > 부모(Object2) > 자식(Object3, 현재 Object)일 경우,
현재 Object (Object3)의 부모 Object (Object2)에서 부모 Object(Object1) 를 불러 오면 된다.
2.하위(자식) 오브젝트 접근하기
tranform.GetChild(찾기 원하는 오브젝트 위치).gameObject 를 사용하면
해당 오브젝트의 위치를 찾을 수 있다.
// 첫 번째 자식 object 찾기
public class x : MonoBehaviour{
GameObject child = null;
void Start()
{
gameobject = transform.GetChild(0).gameObject; //해당 오브젝트의 첫 번째 자식을 불러온다
gameobject = transform.GetChild(1).gameObject; //해당 오브젝트의 두 번째 자식을 불러온다
}
}
//오브젝트 이름으로 하위(자식) 오브젝트 찾는 방법
public class x : MonoBehaviour{
GameObject child = null;
void Start()
{
gameobject = transform.FindChild("찾기 원하는 오브젝트의 이름");
}
예시로 다음 스크립트는 리스트안에 담겨져 있는 오브젝트의 첫번째 자식의 Object를 비활성화 시키고
부모의 Button 속성을 불러와서 비활성화 시켜주는 코드이다.
해당 위치에 있는 자식의 이름을 가져오는 방법
transform.GetChild(1).gameObject에 name을 붙여서 자식 오브젝트의 이름 뿐만아니라
GetComponent를 이용해서 자식의 컴포넌트 속성을 가져와서 사용할 수 도 있다.
728x90
반응형
'PROGRAMING📚 > Unity📑' 카테고리의 다른 글
[유니티 Unity] 리스트안의 bool의 갯수, 체크 하기 (0) | 2022.07.20 |
---|---|
[유니티 Unity] 텍스트메시프로(TextMeshPro) 사용시, 한글 깨짐 현상 대처 방법 (0) | 2022.07.20 |
[유니티 Unity] 버튼을 이용한 웹사이트(URL) 연결하기 (0) | 2022.07.17 |
[유니티 Unity] 유니티 안에서 웹캠(WebCamTexture) 화면 띄우는 방법 (0) | 2022.07.17 |
[유니티 Unity] 리스트안에 있는 데이터 랜덤으로 섞기 (0) | 2022.06.06 |
댓글