저번 포스팅을 통해 Object(객체)와 Component(컴포넌트)의 차이의 개념에 대해서 설명을 했는데,
햇갈린 사람은 아래 링크 클릭
유니티 오브젝트(Object)와 컴포넌트(Component)의 차이와 개념
오늘 강사님께 배우길, 오브젝트와 컴포넌트의 차이를 정확히 안다면 유니티가 정말로 쉬워질 것이고 정확히 모른다면 어려워질 것이라는 부분을 듣게 되고 배우기도 했다 그런데 나중에 내가
zetezz.tistory.com
그렇다면 스크립트에서 오브젝트를 찾는 법과 컴포넌트를 갖고 오는법 즉 접근법은 어떤 방법들이 있을까?
궁금하기 시작해서 구글링을 시작해 봤다.
1. 오브젝트 찾는법
// GameObject 타입으로 초기화
// 아래 코드로 인해 obj 라는 변수에 GameObject 타입의 Object가 들어간다.
GameObject obj = GameObject.Find("찾을 Object명");
// 자식 객체를 찾을땐 아래와 같은 코드로 사용해서 이름이 겹치는 객체여도 정확히 갖고 올 수 있다.
// 자식 객체는 부모객체의 transform 컴포넌트에 붙어 있으므로 아래와 같이 접근하면 된다.
GameObject obj = GameObject.Find("부모 오브젝트 이름").transform.Find("자식 오브젝트이름").gameObject;
// 다른 방법으로도 자식 객체를 찾을 수 있는데
// 1. tag로 찾는다
GameObject obj = transform.Find("tag").gameObject;
// 2. 자식을 인덱서(번호)로 찾는다. 아래 코드는 0번째 자식, 즉 첫번째 자식을 obj 변수에 넣음
GameObject obj = transform.GetChild(0).gameObject; // 자식을 번호로 찾음. 0번째가 첫 번째 자식
2. 컴포넌트 갖고 오는법 (접근법)
// Rigidbody 타입의 변수 rb를 선언하고 그 안에 GetComponennt 메서드로 Rigidbody 컴포넌트를 넣음
Rigidbody rb = GetComponent<Rigidbody>();
// 다른 객체(Object)에 있는 스크립트 컴포넌트를 갖고 오고 그 안의 변수를 수정하는법
Test test = GameObject.Find("Test라는 클래스 스크립트 파일을 붙여 넣은 오브젝트명").GetComponent<Snow>();
// 아래와 같이 접근이 가능
snow.speed = 5;
'유니티 프로그래밍' 카테고리의 다른 글
유니티 애니메이션에 조건 추가 해주고 컨트롤러 설정 방법 (0) | 2022.06.01 |
---|---|
유니티 컴포넌트 활성화 / 비활성화 (Unity Component Enabled / Disabled) 끄기 (0) | 2022.05.27 |
유니티에서 이미지 자르는 법 (Sprite Editor 사용) (0) | 2022.05.25 |
유니티 캐릭터 애니메이션 주는 방법 (0) | 2022.05.24 |
유니티 충돌체 설정 하는법 (Box Collider 2D) (0) | 2022.05.24 |