일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 구글 앱 엔진
- NarwalFreo
- 파이썬
- 인공지능
- Bidirectional Associative Memory
- 신경망
- Friendship
- BAM
- 패턴인식
- Neural Network
- hopfield network
- 갤럭시탭S8울트라
- 증강현실
- 멤버십
- 물걸레로봇청소기추천
- 패턴 인식
- 물걸레자동세척로봇청소기
- 나르왈프레오
- Google App Engine
- 하이퍼바이저
- 고려대학교
- 삼성
- 삼성소프트웨어멤버십
- 빅데이터
- 동아리
- 가상화
- SSM
- 삼성전자 소프트웨어멤버십 SSM
- Python
- 신경회로망
- Today
- Total
정보공간_1
[2기 대구 김길종] Unity3D 기초 (2) 본문
Unity3D 기초 (2)
저번 글에서는 유니티 툴의 간단한 인터페이스에 대해 알아봤는데요
인터페이스에 관한 더 자세한 것들은 공식 홈페이지에 나와 있으니 참고하시길 바랍니다
이번에는 씬 빌딩의 기초인 게임 오브젝트와 컴포넌트에 대하여 알아보도록 하겠습니다
GameObjects
게임 오브젝트는 유니티의 씬을 구성하는 가장 기본적이고 중요한 객체라고 할 수 있습니다. 모든 것은 이 게임 오브젝트에서 시작하여 게임 오브젝트로 끝나게 됩니다.
게임 오브젝트란?
유니티 씬에 나타나는 모든 객체는 게임 오브젝트 입니다. 단 게임 오브젝트 그 자체 만으로는 아무런 의미가 없습니다. 일종의 빈 상자라고 할 수 있는데요. 게임 오브젝트를 특별하게 만들기 위해서는 컴포넌트라(Component)는 것이 필요합니다. 자신이 어떤 종류의 객체를 만들고자 한다면 그에 맞는 컴포넌트를 게임 오브젝트에 붙여서 만들어내는 것입니다. 그래서 게임 오브젝트를 제대로 이해하려면 그것을 구성하고 있는 / 할 수 있는 컴포넌트들에 관해 자세히 알아야 합니다. 예를 들어 자동차의 바퀴를 만든다면 빈 게임 오브젝트 안에 바퀴모양의 Mesh를 넣고 Collider를 넣어야 하는데 Mesh 와 Collider가 뭔지 모르면 바퀴를 만들 수 가 없게 되는 것이죠. '게임 오브젝트 = 컴포넌트들의 조합'으로 보시면 되겠습니다. 그러한 컴포넌트는 이미 있는 것을 가져다 쓸 수도 있지만 스크립트와 같이 직접 만들어낼 수도 있습니다.
GameObject & Component
이제 게임 오브젝트의 가장 중요한 / 흔한 컴포넌트인 Transform을 보면서 GameObject와 Component의 관계를 살펴보겠습니다. 먼저 유니티 창에서 게임 오브젝트를 만들어 봅시다. 아무 씬이나 들어가서 상단 메뉴의 GameObject를 누르고 Creat Empty를 선택하게 되면 아래와 같이 빈 게임 오브젝트가 하나 생성됩니다.
오른쪽의 인스펙터를 보면 오브젝트의 이름, 태그, 레이어가 있고 그 아래에 Transform이라는 것이 있습니다. Transform 위쪽 부분은 게임 오브젝트의 단순 속성이고 Transform은 컴포넌트 입니다. 이 Transform 없이 게임 오브젝트는 존재할 수 없는데요. 그도 그럴것이 오브젝트의 위치정보, 회전, 크기등 가장 기본적인 요소를 정의하고 있기 때문입니다. 이 Transform 컴포넌트를 사용함으로써 게임 오브젝트의 Transform 속성을 활성화하는 것입니다.
Transform 컴포넌트는 부모 자식 관계 설정(Parenting)을 가능하게 하는데 게임 오브젝트를 구성함에 있어서 아주 중요합니다. 자동차를 만든다면 자동차 라는 게임 오브젝트가 있고 그 자식으로 몸체, 바퀴 등을 가지는 구조를 생각해 볼 수 있습니다.
Transform 컴포넌트는 위에서 설명한 것처럼 필수 요소이기 때문에 모든 게임 오브젝트가 기본적으로 하나씩 가지고 있습니다. 빈 게임 오브젝트를 생성하면 자동으로 Transform 컴포넌트가 붙어서 나오게 되죠. 게임 오브젝트는 이러한 Transform 컴포넌트 말고도 다양한 컴포넌트들을 가질 수 있는데요. 씬을 처음 생성하면 만들어져있는 Main Camera 라는 게임 오브젝트를 한번 들여다 보겠습니다.
Main Camera의 인스펙터를 보면 Transform 외에도 다양한 컴포넌트들이 있습니다. 위와 같은 컴포넌트들이 있음으로써 게임 그래픽이 렌더링 되어 게임 화면을 볼 수 있는 것입니다. 물론 여기에 다른 컴포넌트들을 얼마든지 추가할 수 있습니다.
Using Components
사용자는 게임 오브젝트에 컴포넌트를 추가 / 삭제하고 그 속성들을 간단하게는 인스펙터 창을 통해 수정할 수 있습니다. 먼저 컴포넌트를 추가해보도록 하겠습니다.
빈 게임 오브젝트를 클릭하면 오른쪽에 관련된 인스펙터 창이 나오는데요. 물리엔진의 사용을 위해 Rigidbody라는 컴포넌트를 추가해보도록 하겠습니다. Rigidbody는 상단 메뉴창의 Component -> Physics -> Rigidbody를 통해 추가 가능합니다. 게임 오브젝트의 인스펙터를 띄워둔 채로 컴포넌트를 클릭하면 추가가 됩니다.
스크립트 또한 게임 오브젝트 안에서 컴포넌트로 관리되는데 어떻게 보면 게임을 만드는데 있어서 가장 중요한 요소가 바로 스크립트 조작능력이라고 할 수 있습니다. 게임 오브젝트를 생성하고 컴포넌트를 추가하는 스크립트를 작성할 수 있다면 게임 실행중에 마음대로 게임 오브젝트를 만들어내고 성질을 바꾸는 것이 가능해지게 됩니다. 또한 스크립트 없이는 불가능한 것들이 많으므로 스크립팅 능력 없이는 유니티를 안다고 할 수 가 없습니다. 스크립트는 게임 오브젝트에 컴포넌트 형태로 추가할 수 있으며, 추가가 되면 플레이 중에 스크립트 내부의 Start와 Update 함수가 지속적으로 call 됩니다.
유니티 내에서는 JavaScript, C#, Boo 세 가지 형식의 스크립트를 작성할 수 있습니다. 한 프로젝트에서 여러 개의 스크립팅 언어들을 같이 사용할 수 있으며 이는 실행에 아무런 문제가 되지 않습니다.
스크립트는 다른 컴포넌트들과는 달리 게임 오브젝트에 바로 추가하는 형식이 아니라 Project 창에 먼저 만들어줘야 합니다. Project 창에서 마우스 오른쪽 버튼을 클릭하여 Create->언어선택 으로 만들 수 있습니다. 만들어진 스크립트를 더블 클릭하면 스크립트의 수정이 가능합니다. 스크립트의 기본 에디터는 Unity3D에 내장된 MonoDevelop 인데 Unity->Preferences->External Script editor 메뉴를 통해 Visual Studio 등 다른 에디터로 변경이 가능합니다.
http://korea.unity3d.com/ - 유니티 코리아 (유니티 공식 문서)
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[2기 강남 이광수] Micom Programming 의 세계 (2부) (0) | 2012.10.22 |
---|---|
[2기 광주 박이근] 카메라 보정 (0) | 2012.10.22 |
[2기 대구 이현복] Data Structure - Stack & Queue (0) | 2012.10.21 |
[2기 부산 배보람] 리눅스 파일 I/O와 파일 디스크립터 (0) | 2012.10.20 |
[2기 부산 최은진] 당신의 스마트폰이 Wi-Fi에 접속하기 까지 (1) | 2012.10.19 |