유니티(Unity)에서 씬(Scene)과 게임오브젝트(GameObject) 이해
유니티에서 게임의 월드는 씬의 형태로 표시됩니다. 씬은 xyz축으로 이루어진 데카르트 3D 좌표계에 위치한 게임 오브젝트들의 집합입니다. 게임오브젝트는 씬에서 인스턴스화됩니다. 인스턴스화된 게임 오브젝트들은 컴포넌트 또는 스크립트에서 정의된대로 행동하고 상호작용합니다.
게임 오브젝트는 씬에 존재하는 모든것으로 컴포넌트로 구성되어있습니다(콜라이더, 메시, 사운드, 스프라이트, 사용자정의클래스, 기타) 씬의 게임 오브젝트는 좌표계 어딘가에 존재해야하기때문에 적어도 1개의 트랜스폼(Transform) 컴포넌트 를 가집니다(씬에서 create empty를 사용하여 생성한 게임 오브젝트는 Transform 컴포넌트를 가집니다) Transform 컴포넌트는 position, rotation, scale과 같은 속성을 가지고 게임오브젝트의 위치, 회전, 크기를 정의합니다.
씬의 GameObject 찾기
씬의 게임 오브젝트를 찾아 반환하는 몇가지 함수들을 제공합니다.
GameObject.Find("오브젝트 이름");
문자열 이름의 게임 오브젝트를 반환합니다. 이 방법은 계층(hirarchy)를 탐색하고 문자열을 비교하기때문에 성능상의 이유로 아래 방법을 권장합니다.
GameObject.FindObjectWithTag("태그");
태그(tag)가 지정된 게임 오브젝트를 반환합니다. 태그는 사용하기 이전에 태그 관리자에서 선언해야 합니다.
GameObject.FindObjectsWithTag("태그");
위와 유사하지만 2개 이상의 게임 오브젝트를 반환합니다. 리턴 타입은 게임 오브젝트 타입의 배열, GameObject[] 입니다.
예에서 cubeObject 태그로 지정된 게임오브젝트의 이름을 출력합니다 (Cube)
'유니티게임개발 > 기초공부' 카테고리의 다른 글
유니티(Unity)의 텍스트 메시 프로(TextMeshPro) (0) | 2023.09.19 |
---|---|
유니티에서 렌더링 패스 설정하기(포워드 렌더링, 디퍼드 렌더링) (0) | 2023.09.10 |
유니티와 C# (0) | 2023.09.08 |
유니티 허브(Unity Hub)에서 에디터 설치하고 프로젝트 생성 및 시작하기 (0) | 2023.08.15 |
유니티(Unity) 기본 어셈블리(Assembly-CSharp) 확인하기 (0) | 2023.08.11 |