2. Unity3D
목표
•Unity3D툴의기본사용법을익혀보자.
(Unity3DPro3.4.2)
12년2월9일목요일
유니티3D 툴의 기본 기능을 알아보자.
실습을 진행할 버젼은 Unity3D 3.4.2버젼으로 Pro License를 획득한 버젼이다.
자료 작성일 기준으로 최신버젼이며, 웹사이트에서 다운로드 받을 수 있다.
웹사이트에서는 다양한 기능이 추가된 3.5 메이저 업데이트 버젼의 엔진 테스트 버젼 역시 다운로드 받을 수
있다.
베타 버젼이라도 이번 실습을 진행하는데는 문제가 없다.
3. Unity3D
목차
•Projects
•ScenePanel
•Hierarchy
•GameView
•ProjectPanel
•WhatisaGameObject
•Components
•ImportinganAsset
•Lights
•CameraBasics
12년2월9일목요일
본 스터디의 목자는 유니티스터디라는 사이트에 있는 기초 강좌의 커리큘럼을 참고하였다.
목차에서 소개한 기능을 학습한다면 다음 주 부터 유니티 툴 중급 강의를 함께 할 수 있다.
여타 샌드박스와 유사한 메뉴 형태를 지니고 있다. 흔히 이야기하는 수십억대의 고급엔진인 언리얼엔진, 크
라이엔진과 빗데어 손색이 없을 정도의 막강한 기능을 가지고 있다. 비교적 낮은 가격의 엔진임에도 잦은 업
데이트와 버그픽스 그리고 서드파티군의 라이브러리와도 통합이 수월한 것이 유니티엔진의 최대 장점인 것
같다. 모바일게임을 개발할 때 유니티엔진 다음으로 자주 사용되는 코코스2d 엔진과 비교해보겠다. 본인은
코코스2d엔진을 대략 1년간 사용하였다. 풀소스가 제공되며, 지난 해 부터 멀티플랫폼 개발엔진을 표방하며
iOS 이외의 플랫폼에 대한 지원이 진행되고 있다. 툴적인 기능이 거의 제로에 가까워 유니티에 비해 사용성
이 굉장히 떨어지나 최소한의 기능을 가지고 있고, 네이티브 코드를 사용해 개발이 진행되는 관계로 유니티
에 비해 퍼포먼스가 좋은 편이다.
4. Unity3D
Project
•여러개의Scene으로구성가능한관리및개발단위
12년2월9일목요일
하나의 게임에 하나의 프로젝트가 사용된다. 프로젝트는 여러개의 Scene으로 구성이 가능하다.
프로젝트는 폴더로 관리가 되며, 특별한 확장자를 가지고 있진 않다.
파일New Project를 선택하면 화면 우측에 있는 창이 팝업된다. 상단에 프로젝트의 디렉토리명을 입력을
하자.
다시 한 번 이야기하자면 프로젝트는 단일 파일이 아닌 폴더로 관리된다.
프로젝트 명을 입력했으면 해당 프로젝트에서 사용할 기본 리소스 패키지를 선택할 수 있다.
이 곳에서 패키지를 선택하지 않았다고 해서 큰 일이 나는 것은 아니니 선택을 하지 않은 상태에서 Create
Project를 눌러준다.
패키지와 Import는 다시 설명을 하도록 하겠다.
유니티의 멀티플랫폼 개발엔진의 특성상 한글, 띄어쓰기는 되도록 피하고, 대소문자에 주의를 기울이자.
프로젝트를 생성하고 폴더를 살펴보자. Asset폴더와 Library폴더, Temp 폴더가 생성된 모습을 볼 수 있다.
참고로 게임에서 사용되는 모든 리소스는 Asset폴더 하위에 관리되어야 한다.
5. Unity3D
ScenePanel
•게임속월드,장면을편집하는패널
12년2월9일목요일
프로젝트를 생성하면 기본 화면을 만날 수 있다. 이때 저장되지 않은 Scene이 생성이 되어있는 상태이다.
앞으로 작업을 하기에 앞서 Scene을 저장하도록 하자. FileSave Scene버튼을 누르면 우측의 프로젝트 창
에 Scene이 생성된 걸 확인 할 수 있다. 추가로 Scene을 하나 더 만들어 보도록 하자. 이 상태에서
FileNew Scene을 클릭하자. 화면에 변화를 감지할 수 있는 오브젝트가 없어 Scene이 생성되지 않은 것
처럼 보인다. 이 상태에서 FileSave Scene을 클릭하면 우측의 프로젝트창에 Scene이 추가된 것을 확인 할
수 있다.
프로젝트 패널에서 Scene을 더블클릭하면 Scene Panel에서 편집을 할 수 있다. 현재 편집하고 있는 Scene
의 이름이 툴 상단에 표기된다.
6. Unity3D
Hierarchy
•게임오브젝트의계층구조
12년2월9일목요일
하이라키. 계층구조라 한다. 현재 편집하고 있는 Scene에 GameObject가 어떤 계층구조를 가지고 배치되
어 있는지 알 수 있다.
하이라키 패널이 보이지 않는다면 WindowHierarchy 메뉴를 클릭하여 나타나게 할 수 있다.
하이라키 사용법을 알아보기 위해 게임오브젝트를 현재 Scene에 추가해보자. 상단의
GameObjectCreate OtherCube를 클릭하자. 하이라키에 Cube가 추가 된 것을 확인 할 수 있다. 동일
한 방법으로 박스 하나를 더 추가하자.
하이라키 패널에 Cube가 2개 생성되어 있다. 하이라키에서 오브젝트를 클릭하면 Scene Panel에 표시가 된
다. 더블클릭을 하거나 선택된 상태에서 “F”키를 누르면 카메라가 선택된 오브젝트까지 이동한다.
이름 부분을 클릭하면 이름을 바꿀 수 있고, 오브젝트를 선택한 후 다른 오브젝트로 드래그하면 하위노드로
이동시킬 수 있다.
게임 개발이 진행되어 하이라키 패널에 오브젝트의 수가 많다면 Search 검색을 이용할 수 있다.
당연한 이야기지만 delete키를 눌러 삭제할 수 있다. Ctrl+C/V 버튼을 통하여 Copy/Paste를 할 수 있으
며, 마우스 우클릭 후 나타나는 메뉴를 통해 언급한 기능들을 수행할 수 있다.
다음 진행을 위해 오브젝트를 카메라에 나올 수 있도록 위치를 조정하자.
7. Unity3D
GameView
•선택된Scene이플레이되면어떤상태인지궁금할때
12년2월9일목요일
크라이엔진, 언리얼엔진 모두 에디터상에서의 미리보기 기능을 지원한다.
해당 기능은 생산성과 개발자-기획자-디자이너간 협업을 하는데 있어 중요한 기능이다.
상단에 있는 플레이버튼/포즈버튼을 통해서 플레이 시킬 수 있다.
동일하게 작동한다. 이때 주의할 점은 에디터에서 게임뷰의 퍼포먼스를 맹신하지 말라는 것이다.
아직까지 모바일과 PC의 성능 차이는 상당하다. 게임뷰에서 잘 돌아가던 것이 디바이스에 넣었더니 프레임이
안 나올 수 있다.
개발 초기에 이러한 사실을 명심하고 자주 디바이스에 올려 테스트하도록 하자.
추가적으로 게임을 플레이하는 상태에서 Scene Panel을 보자. 이동툴을 이용하여 박스를 선택할 수 있다. 실
제 움직여보면 게임뷰 상에서 사라지게 된다. 화면 밖으로 이동 시킨 상태에서 게임을 중지 시키면 박스가 제
자리로 돌아오는 것을 확인 할 수 있다. 플레이 상태에서 게임오브젝트를 애써 편집하다가 재작업하는 수고가
생길 수 있다. 조심하자.
추가적으로 Maximize를 클릭하여 플레이시 전체 화면으로 바꿔줄 수 있다. 그리고 좌측 상단에 있는 메뉴를
통하여 뷰 크기를 조정할 수 있다.
8. Unity3D
ProjectPanel
•프로젝트에사용된리소스탐색기
12년2월9일목요일
프로젝트에서 사용되는 모든 리소스가 출력된다. 프로젝트는 폴더로 관리되며 프로젝트 폴더 중 Asset에 있
는 모든 데이터가 이 곳에 노출된다. 탐색기나 파인더를 통하여 폴더 혹은 데이터를 생성할 경우 유니티에 자
동으로 반영된다. 프로젝트 패널에 우 클릭을 하면 위와 같은 팝업메뉴가 나타난다. 하나 하나 기능을 살펴보
도록 하겠다.
Create는 리소스를 생성할 때 사용한다. 폴더, 스크립트, 메터리얼, 프리팹, 애니메이션 등 유니티에서 사용
되는 모든 리소스를 이 메뉴를 통해 생성하게 된다. Reveal in Finder 혹은 Show in Explorer의 경우 탐색
기나 파인더로 선택된 리소스를 볼 수 있다. open, delete는 리소스를 열거나 삭제할 때 사용된다. import
와 export는 다른 챕터에서 자세히 알아보도록 하자.
9. Unity3D
GameObject
•게임의구성단위
12년2월9일목요일
게임의 구성단위. 모든 게임오브젝트는 위치, 크기, 회전값을 가지고 있다. 하이라키 이외에도 태그와 레이어
로 계층구조를 나눌 수 있다. 이미 만들어져 있는 기본 오브젝트를 쓰는 상황보다 Create Empty를 통해 빈
오브젝트를 생성하고, 컴포넌트를 추가하여 구성하는 경우가 더욱더 빈번하다. 유니티 좌측 상단에 있는 컨
트롤키를 통하여 위치, 크기, 회전을 시킬 수 있다. Scene Panel상에서 GameObject를 선택하면 우측의
Inspector창에 GameObject의 세부 정보를 확인 및 편집을 할 수 있다. Create OtherCube를 통해 생성
한 GameObject를 Create Empty로 만든 GameObject와 비교해보자. Mesh와 Collider, Renderer가
추가되어 있는 것을 확인 할 수 있다. 이를 컴포넌트라 하는데 다음장에서 자세히 알아 볼 것이다.
Inspector를 통하여 GameObject의 이름을 바꾸고, 옵션을 조절 할 수 있다. 체크 박스는 GameObject의
Active상태를 나타내며, 언체크시 화면에 렌더링되지 않는다. Static의 경우 링크를 참고하자. 메모리와 퍼
포먼스에 영향을 주는 옵션이다.
10. Unity3D
Component
•GameObject의속성
12년2월9일목요일
게임오브젝트의 속성의 기본단위이다. Component메뉴를 확인해보면 다양한 속성이 있다. GameObject
가 선택되어 있지 않은 상태에서 Component는 활성화되지 않는다. GameObject를 선택하고
Component메뉴를 다시 확인해 보면 Component가 활성화 되는 것을 확인할 수 있다. Empty
GameObject를 만들고, Mesh Filter와 Mesh Renderer를 추가해보자. Mesh와 Material을 연결하여
Cube를 만들 수 있다. GameObject에 있는 다양한 값들은 특별한 것이 아니고 프리셋이다. Empty
GameObject와 Componet의 조합으로 만들어 진 것을 확인할 수 있다. Componet를 추가하는 방법은 리
소스를 직접 Inspector창으로 드래그하는 방법도 있다. 이러한 방법을 이용하여 스크립트를 추가해보자.
11. Unity3D
ImportAsset
•AssetStore와Package
12년2월9일목요일
Asset Store의 사용법을 알아보자. 우리가 만든 프로젝트를 Package로 Export, Import하여 Asset의 사
용법을 익히자.
12. Unity3D
Light
•광원.DirectionalLight,SpotLight,PointLight
12년2월9일목요일
모바일에서는 사용하지 말자. PC에서도 많은 양의 연산이 필요하다. 모바일에서는 퍼포먼스에 극악이다. 퍼
포먼스 극복을 위해 Lightmap이라는것을 이용해서 구성할 수 있다. 언리얼엔진 역시 실시간 광원은 사용제
한이 있다. 주로 많은 양의 리소스를 통하여 광원을 표현한다.
13. Unity3D
Camera
•기본적인카메라사용법
12년2월9일목요일
컬링. 퍼포먼스 향상. 2D게임 개발을 위한 카메라 세팅에 대하여 알아보자.