61

절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

  • View
    659

  • Download
    62

Embed Size (px)

DESCRIPTION

이재현 지음 | 게임 개발 시리즈_013 | ISBN: 9788998139711 | 48,000원 | 2014년 12월 18일 발행 | 760쪽

Citation preview

Page 1: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법
Page 2: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법
Page 3: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

지은이 이재현

펴낸이 박찬규 엮은이 윤가희, 이대엽 디자인 북누리 표지디자인 아로와 & 아로와나

펴낸곳 위키북스 전화 031-955-3658, 3659 팩스 031-955-3660

주소 경기도 파주시 문발로 115 세종출판벤처타운 #311

가격 48,000 페이지 760 책규격 188 x 240mm

초판 발행 2015년 01월 03일

ISBN 978-89-98139-71-1 (13000)

등록번호 제406-2006-000036호 등록일자 2006년 05월 19일

홈페이지 wikibook.co.kr 전자우편 [email protected]

Copyright © 2015 by 이재현

All rights reserved.

First published in Korea in 2015 by WIKIBOOKS

이 책의 한국어판 저작권은 저작권자와의 독점 계약으로 위키북스가 소유합니다.

신 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다.

이 책의 내용에 대한 추가 지원과 문의는 위키북스 출판사 홈페이지 wikibook.co.kr이나

이메일 [email protected]을 이용해 주세요.

이 도서의 국립중앙도서관 출판시도서목록(CIP)은

서지정보유통지원시스템 홈페이지(http://seoji.nl.go.kr)와

국가자료공동목록시스템(http://www.nl.go.kr/kolisnet)에서 이용하실 수 있습니다.

CIP제어번호 CIP2014035659

절대강좌! 유니티3DUnity 3D 전문 개발자가 알려주는효과적인 게임 제작기법

Page 4: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법
Page 5: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

필자가 처음 게임을 만들기 시작한 것은 중학교 시절이었다. GW-BASIC 언어를 배워가며 게임을 만들기

시작했다. 팩맨(Pac-Man)과 비슷한 게임으로 괴도루팡이 보석을 줍는 시나리오였는데, 물론 기술적인 한

계 때문에 완성하진 못했다. 그 이후로 게임과 전혀 관련 없는 SI 분야에서 개발경력을 쌓아오다 2008년 과

감히 아이폰 앱 개발에 뛰어들었다.

2D 게임을 개발하면 할수록 3D 게임 개발에 대한 열망으로 이런저런 개발 툴을 기웃거리다 유니티 3D를

접하고 나서 많은 희망을 봤고 동시에 절망감도 느꼈다. 그 당시 국내에는 유니티 관련 서적은 한 권도 없

었기 때문에 영문 매뉴얼과 외국 유니티 포럼이 유일한 길라잡이였다.

요즘은 국내외 좋은 서적이 많이 나와 있어 유니티를 배우려는 분들에게 축복받은 시절이라 할 수 있다. 하

지만 필자가 이 책을 쓰게 된 이유 중 하나는 오프라인 강의를 진행하면서 대부분 수강생들이 한두 권의

유니티 서적을 가지고 있지만, 실제로 게임을 어떻게 개발해야 하는지, 어디서부터 시작해야 하는지 몰라

서 답답해하는 모습을 많이 봤기 때문이다. 유니티가 비주얼 툴(Visual Tool)이기 때문에 지면을 이용해 그

내용을 전달하기 어렵다는 것은 반대로 독자들이 배우기가 쉽지 않다는 것과 같은 말이다. 또한 유니티의

기능을 충분히 소개했다 하더라도 막상 “이러이러한 게임을 개발합시다”라고 하면 그 기능을 어떻게 적용

해야 하는지 모른다. 이것은 영어 단어와 문법을 열심히 공부해도 실제 외국인을 만나면 간단한 회화조차

할 수 없는 것과 같다고 생각한다.

따라서 이 책은 유니티의 기능별로 심도 있게 파고들지는 않는다. 또한 기능별로 분리해서 설명하는 방식

이 아니라 개발 과정에서 필요한 기능을 설명하고 적용하는 방식으로 진행한다.

이 책의 마지막 페이지를 덮은 후 독자 여러분의 PC에 꽤 괜찮은 게임 프로토타입이 남아있기를 기대한다.

서문

Page 6: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

이 책의 대상 독자

이 책은 우선 유니티 초급자를 대상으로 한다. 유니티의 소개, 설치 및 인터페이스 소개부터 시작하므로 이

미 개발 경험이 있는 독자는 1장은 건너뛰어도 된다.

또한 이 책은 중급자를 위한 책이기도 하다. 이미 다른 유니티 관련 서적으로 공부한 독자들에게 실제로 게

임을 어떻게 개발해 나가는지를 소개한다. 본문 코드에서도 고급 문법을 사용해 기존에 알던 문법이지만

다양하게 활용할 수 있는 방안을 제시한다.

리소스 내려받기

이 책에서 사용하는 대부분의 리소스는 유니티 개발사가 운영하는 애셋스토어(Asset Store)에서 내려받아

사용한다. 그 외의 다른 리소스는 유니티 패키지로 만들었으며 이 책의 부록 DVD에 포함돼 있다.

이 책을 보던 중 궁금한 사항에 대해서는 다음 웹사이트에서 문의할 수 있다.

저자 홈페이지 - http://www.Unity3dStudy.com/

또한 이 책의 오탈자 및 FAQ도 제공하고 있으니 참고한다.

개정판을 내면서

『절대강좌 유니티 4』를 출간한 이후 많은 독자 여러분의 성원에 감사드립니다. 또한 좀 더 다듬어지지 않

은 부분에 대한 질타 또한 겸허히 받아들이겠습니다. 본 개정판은 유니티 5가 출시된 후 출간하려 했으나

기본적인 프로그래밍 방식은 유니티 버전에 따라 크게 변하는 것이 아니기 때문에 유니티 버전 4의 마지

막 릴리스 버전인 4.6을 기준으로 집필했습니다. 유니티 4.6의 가장 큰 특징은 새로운 UI 시스템입니다. 본

개정판에서는 새로운 UI 활용법을 충실히 소개함으로써 실전 개발에 적용할 수 있게 내용을 보강했습니다.

또한 포톤클라우드를 활용한 네트워크 게임 개발도 추가해 본격적인 온라인 게임 개발을 염두에 둔 개발

자들에게 많은 도움이 되리라 생각합니다.

서문

Page 7: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

감사의 글

이 책이 나올 수 있게 해준 위키북스 출판사에 감사한다. 특히 오랜 집필기간 동안 묵묵히 지켜봐 주셨던

박찬규 대표님, 지속적인 아이디어와 기술동향에 대해 조언을 해주셨던 김윤래 팀장님, 그리고 초보 집필

자의 어설픈 문장력을 놀라운 기술적인 이해도를 바탕으로 꼼꼼하게 교정해주신 윤가희 씨와 이대엽 씨에

게 감사한다. 또한 멋진 그림을 그려주신 잠산 작가님께 감사한다.

서문

Page 8: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

남편의 무모한 시도를

항상 응원하고 격려해준

나의 아내 현상, 사랑합니다.

그리고

무럭무럭 밝게 커주고 있는

사랑스러운 다은, 다율아

아빠가 많이 사랑해.

Page 9: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 유니티 3D 소개

유니티 3D 게임 엔진의 탄생 ............................................................................................................ 21

유니티의 장점 ................................................................................................................................ 21

멀티 플랫폼 지원 ........................................................................................................................... 21

통합개발환경(IDE, Integrated Development Environment) ............................................................. 23

합리적인 가격 정책 ........................................................................................................................ 23

빌트인 미들웨어(Built in Middleware) ............................................................................................ 24

지형 엔진(Terrain Engine) ..................................................................................................... 24

라이트매핑(Lightmapping – Beast) ........................................................................................ 25

오클루전컬링(Occlusions Culling – Umbra) ............................................................................. 26

3D 사운드 엔진(FMOD –Firelight Technologies) ..................................................................... 27

오픈 커뮤니티 ................................................................................................................................ 28

애셋스토어(Asset Store) ................................................................................................................ 28

유니티로 만든 게임 ........................................................................................................................ 29

유니티 내려받기 ............................................................................................................................ 31

유니티 설치 .......................................................................................................................... 32

유니티 라이선스 옵션 선택 ...................................................................................................... 35

유니티 계정 생성 및 로그인 ..................................................................................................... 36

유니티 인터페이스 ......................................................................................................................... 38

뷰(View) ............................................................................................................................. 41

툴 바(Tool bar) ..................................................................................................................... 52

피봇(Pivot) / 센터(Center) .................................................................................................... 56

단축키 설정 .......................................................................................................................... 59

목차

Page 10: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

02 게임 개발 준비

개발할 게임 소개 및 개발 순서 ......................................................................................................... 62

새 프로젝트 생성 ........................................................................................................................... 63

개발환경(IDE) 조정 ........................................................................................................................ 64

Project 뷰의 체계적인 관리 ............................................................................................................. 65

캐릭터모델 임포트하기 ................................................................................................................... 67

애셋스토어(AssetStore) 계정 생성 .................................................................................................. 69

Project 뷰에서 에셋스토어 접속 ...................................................................................................... 70

에셋스토어에서 리소스 내려받기 ..................................................................................................... 72

03 게임 스테이지 제작

3D 모델 ........................................................................................................................................ 76

텍스처(Texture) ............................................................................................................................ 78

머티리얼(Material) ........................................................................................................................ 78

텍스처 적용 ................................................................................................................................... 79

셰이더(Shader) ............................................................................................................................. 83

프리팹(Prefab) .............................................................................................................................. 86

프리팹을 이용한 벽 만들기 .............................................................................................................. 87

조명(Light) ................................................................................................................................... 92

Directional Light.................................................................................................................. 93

Point Light .......................................................................................................................... 94

목차

Page 11: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

Spot Light ........................................................................................................................... 95

Area Light ........................................................................................................................... 96

하늘 표현 방식(Skybox와 SkyDome) ............................................................................................... 97

04 주인공 캐릭터 제작

빈 게임오브젝트(Empty GameObject) .......................................................................................... 102

3D 모델 임포트 및 옵션 설정 ......................................................................................................... 103

컴포넌트(Component) ................................................................................................................ 105

스크립트 생성 .............................................................................................................................. 107

키보드 입력 값 받아들이기(Input Class) ......................................................................................... 111

캐릭터 이동 - Translate ................................................................................................................ 114

Update 함수 .......................................................................................................................116

Translate 함수 .....................................................................................................................117

정규화 벡터(Normalized Vector) .................................................................................................. 118

캐릭터 회전 - Rotate.................................................................................................................... 122

카메라 추적 – Follow Cam ........................................................................................................... 124

레거시 애니메이션(Legacy Animation) ......................................................................................... 127

애니메이션 클립(Animation Clip) ................................................................................................. 129

애니메이션 컨트롤 ....................................................................................................................... 136

애니메이션 블렌딩 ....................................................................................................................... 140

실시간 그림자(Real Time Shadow) ............................................................................................... 141

Projector를 이용한 그림자............................................................................................................ 146

Plane Mesh를 이용한 그림자 ........................................................................................................ 150

목차

Page 12: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

05발사체 제작 및 사운드 효과

총알 모델 준비 ............................................................................................................................. 154

Rigidbody 컴포넌트..................................................................................................................... 156

Collider 컴포넌트 ........................................................................................................................ 160

Box Collider........................................................................................................................161

Sphere Collider...................................................................................................................161

Capsule Collider ................................................................................................................ 162

Mesh Collider .................................................................................................................... 162

Wheel Collider .................................................................................................................. 164

Terrain Collider .................................................................................................................. 165

충돌 감지 조건 ............................................................................................................................. 165

충돌 이벤트(Collision Event) ........................................................................................................ 168

Tag 활용 ..................................................................................................................................... 169

총알 발사 로직 ............................................................................................................................. 173

총알 발사궤적 효과 만들기 ............................................................................................................ 180

파티클 활용하기 .......................................................................................................................... 185

총알의 입사각 응용 ...................................................................................................................... 191

폭발효과 및 폭발력 생성 ............................................................................................................... 194

랜덤하게 텍스처 적용하기 ............................................................................................................. 201

사운드 – AudioSource, AudioListener .......................................................................................... 204

총구 화염 효과 – Muzzle Flash ...................................................................................................... 212

목차

Page 13: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

06적 캐릭터 제작

메카님(Mecanim) ....................................................................................................................... 221

몬스터3D 모델 임포트 .................................................................................................................. 222

메카님 애니메이션으로 전환 .......................................................................................................... 223

애니메이터 컨트롤러(Animator Controller) ................................................................................... 229

애니메이션 스테이트 전이(Transition) .................................................................................... 233

몬스터 추적 루틴(Navigation Mesh) ............................................................................................. 237

내비게이션 설정 및 베이크 .................................................................................................... 238

Nav Mesh Agent ............................................................................................................... 240

인공지능(AI) 구현 ................................................................................................................ 242

몬스터 공격 루틴 ......................................................................................................................... 254

몬스터 피격 리액션(Reaction) ...................................................................................................... 258

혈흔 효과(Blood Effect) ............................................................................................................... 262

데칼(Decal) – 바닥에 흩뿌려지는 혈흔 효과 .................................................................................... 266

몬스터 공격 능력 부여 .................................................................................................................. 271

특정 레이어 간의 충돌 감지 ........................................................................................................... 275

메카님 캐릭터의 본(Bone) 구조 최적화 .......................................................................................... 278

몬스터 공격 중지 - Tag ................................................................................................................. 280

몬스터 공격 중지 – Delegate, Event .............................................................................................. 285

몬스터 사망 처리 ......................................................................................................................... 289

목차

Page 14: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

07유니티 UI

Canvas 객체 ............................................................................................................................... 302

EventSystem 객체 .............................................................................................................. 303

Canvas 컴포넌트 ................................................................................................................. 304

Rect Transform 컴포넌트 ............................................................................................................ 308

앵커프리셋(Anchor Presets) .................................................................................................312

anchoredPosition 속성 ........................................................................................................318

앵커(Anchors) 속성 .............................................................................................................319

Image 컴포넌트 .......................................................................................................................... 321

Simple ............................................................................................................................... 322

Sliced ................................................................................................................................ 324

Tiled ................................................................................................................................. 325

Filed .................................................................................................................................. 326

RawImage 컴포넌트 .................................................................................................................... 327

Button 컴포넌트 ......................................................................................................................... 329

Transition 속성 ................................................................................................................... 330

Navigation ........................................................................................................................ 335

Button Event ..................................................................................................................... 337

Text 컴포넌트 ............................................................................................................................. 341

Text Effects ....................................................................................................................... 341

Scroll Rect 컴포넌트 .................................................................................................................... 342

Content 속성 ..................................................................................................................... 345

Mask 컴포넌트.................................................................................................................... 346

스코어 UI 구현 ............................................................................................................................. 348

PlayerPrefs를 활용한 스코어 저장 ......................................................................................... 355

생명 게이지 구현(Health Bar) ....................................................................................................... 357

목차

Page 15: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

08게임 매니저 구현

몬스터 출현 로직(Spawn Point) .................................................................................................... 363

게임 매니저에 접근하는 방법 ......................................................................................................... 369

오브젝트 풀(Object Pool) ............................................................................................................ 371

공용 함수 – 사운드 처리 ................................................................................................................ 379

09레이캐스트 활용

레이캐스트 .................................................................................................................................. 385

드럼통 폭발 ................................................................................................................................. 392

레이저 빔 구현 ............................................................................................................................. 396

10라이트맵핑과 라이트 프로브

라이트매핑 .................................................................................................................................. 402

라이트 프로브(Light Probe).......................................................................................................... 409

목차

Page 16: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

11Scene 분리 및 병합

Scene 분리 ................................................................................................................................. 421

Scene 병합 ................................................................................................................................. 425

Scene AssetBundle 제작 ............................................................................................................. 429

Scene Streaming Download 구현 ............................................................................................... 432

12네트워크 게임

네트워크 게임의 정의 ................................................................................................................... 439

네트워크 게임의 물리적 구조 ......................................................................................................... 439

P2P(Peer to Peer) 방식 ....................................................................................................... 439

클라이언트/서버 방식 ...........................................................................................................440

네트워크 통신 프로토콜 ................................................................................................................ 441

TCP/IP ............................................................................................................................... 441

UDP .................................................................................................................................. 441

유니티 Built in Network .............................................................................................................. 441

Network View ................................................................................................................... 442

상태 동기화(State Synchronization) ..................................................................................... 443

원격 프로시저 호출 .............................................................................................................. 443

유니티 네트워크 게임의 절차 ......................................................................................................... 445

게임 서버 초기화 ................................................................................................................. 445

Peer의 게임 접속 ................................................................................................................. 447

Peer 간의 통신 .................................................................................................................... 447

목차

Page 17: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

네트워크 버전 개발 ...................................................................................................................... 448

프로젝트 생성 및 초기화 .......................................................................................................448

스테이지 제작 ..................................................................................................................... 450

플레이어 제작 ......................................................................................................................451

Character Controller 이동 로직 ........................................................................................... 453

네트워크 매니저 생성 ........................................................................................................... 455

실행파일 빌드 ..................................................................................................................... 457

접속 네트워크 사용자 수 확인 ................................................................................................ 461

네트워크 플레이어 제작 ........................................................................................................ 464

카메라 추적 로직 ................................................................................................................. 468

부드러운 동기화 처리(OnSerializeNetworkView) ................................................................... 473

발사 루틴(RPC 호출) ............................................................................................................ 479

애니메이션 동기화 ............................................................................................................... 489

총알의 충돌체크 .................................................................................................................. 496

사망 및 리스폰(Respawn) 처리 ............................................................................................. 497

접속종료 처리 ..................................................................................................................... 506

13포톤클라우드를 활용한 네트워크 게임

유니티 차세대 네트워크 게임모듈 - uNet ........................................................................................ 509

서드파티 네트워크 게임엔진 .......................................................................................................... 509

포톤네트워크 게임엔진 ................................................................................................................. 510

포톤 서버 vs. 포톤 클라우드 ...................................................................................................511

회원가입 .............................................................................................................................512

탱크 대전게임 제작 ...................................................................................................................... 514

탱크 이동 로직 .....................................................................................................................516

무한궤도 애니메이션 ............................................................................................................ 525

충돌 감지를 위한 Collider 설정.............................................................................................. 530

목차

Page 18: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

목차

카메라 추적 로직 및 카메라 피봇 위치 설정.............................................................................. 531

터렛 회전 ............................................................................................................................ 532

포신 각도 조절 .................................................................................................................... 535

포탄 프리팹 생성 및 발사 로직 ............................................................................................... 536

포탄 발사 효과음 ................................................................................................................. 544

Photon Unity Networking 플러그인 설치 ..................................................................................... 546

탱크게임을 포톤 클라우드 버전으로 변경하기 .................................................................................. 550

포톤 클라우드 접속 .............................................................................................................. 550

랜덤 매치 메이킹 ................................................................................................................. 553

룸 만들기 ........................................................................................................................... 555

Photon View ..................................................................................................................... 558

탱크 동적 생성 .................................................................................................................... 559

빌드 및 접속 테스트 ............................................................................................................. 563

자신의 탱크 컨트롤 .............................................................................................................. 565

부드러운 이동 및 회전 처리(OnPhotonSerializeView) ............................................................. 569

터렛과 포신의 동기화 ........................................................................................................... 575

포탄 발사 ............................................................................................................................ 581

탱크 피격 및 리스폰(Respawn) ............................................................................................. 585

로비 제작 .................................................................................................................................... 589

로비 씬 제작........................................................................................................................ 589

로그인 UI 제작 .................................................................................................................... 591

게임 룸으로 입장 ................................................................................................................. 600

탱크 HUD 제작 ................................................................................................................... 607

룸 만들어 입장하기 ...............................................................................................................618

룸 목록 UI 구현 ................................................................................................................... 625

룸 목록 받아오기 ................................................................................................................. 634

버튼 이벤트 동적 연결 .......................................................................................................... 650

베틀 필드 세부 기능 ..................................................................................................................... 655

접속 플레이어 표시하기 ........................................................................................................ 656

룸 나가기 ............................................................................................................................ 659

접속 로그 표시 .................................................................................................................... 663

이벤트 훅............................................................................................................................ 669

스코어 판별 및 표시 기능 .............................................................................................................. 675

Page 19: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

유니티에서 데이터베이스 연결하기 ................................................................................................ 691

JSON ................................................................................................................................. 692

SimpleJSON ...................................................................................................................... 694

스코어 정보 데이터베이스 저장 .............................................................................................. 696

랭킹 정보를 데이터베이스에서 수신........................................................................................ 704

14실감 나는 게임 구현을 위한 유용한 기능

래그돌(랙돌, Ragdoll) .................................................................................................................. 711

프로젝트 생성 및 리소스 내려받기 ..........................................................................................711

스테이지 제작 ......................................................................................................................713

3D 모델의 래그돌 생성 ..........................................................................................................714

스크린 터치 ................................................................................................................................. 725

ScreenPointToRay 함수 ...................................................................................................... 725

Touch 클래스 ..................................................................................................................... 729

유니티 리모트 4 .................................................................................................................. 733

터치로 이동하기 .......................................................................................................................... 735

부록 A데이터베이스

데이터베이스와 데이터베이스 관리 시스템(DBMS) .......................................................................... 741

데이터베이스 서버 ....................................................................................................................... 741

DBMS의 데이터 관리 ................................................................................................................... 741

목차

Page 20: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

목차

테이블 ........................................................................................................................................ 742

칼럼과 로우 ................................................................................................................................. 743

SQL ........................................................................................................................................... 743

CREATE TABLE .................................................................................................................. 744

INSERT ...............................................................................................................................745

UPDATE .............................................................................................................................745

DELETE ............................................................................................................................. 746

SELECT ............................................................................................................................. 746

부록 B유니티 5 소개

물리 기반 쉐이딩(Physically based shading) .................................................................................. 748

글로벌 일루미네이션(Global Illumination) .................................................................................... 749

실시간 라이트맵 프리뷰(Real-time Lightmap Reviews) .................................................................. 749

새로운 오디오 시스템 도입 ............................................................................................................ 750

WebGL 기반 웹 퍼블리싱 ............................................................................................................. 750

유니티 클라우드(Unity Cloud) ...................................................................................................... 751

프레임 디버거(Frame Debugger) ................................................................................................. 751

메카님 스테이트머신(Mecanim StateMachine) 개선 ...................................................................... 752

스피드트리(SpeedTree) 미들웨어 탑재 .......................................................................................... 753

기타 추가 기능 ............................................................................................................................. 754

새로운 유니티 5 초기 화면 ............................................................................................................ 755

Page 21: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

유니티 3D 소개

• 유니티 3D 게임 엔진의 탄생

• 유니티의 장점

• 멀티 플랫폼 지원

• 통합개발환경(IDE, Integrated Development Environment)

• 합리적인 가격정책

• 빌트인 미들웨어(Built in Middleware)

• 오픈 커뮤니티

• 에셋스토어(Asset Store)

• 유니티로 만든 게임

• 유니티 내려받기

• 유니티 인터페이스

01

Page 22: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 21

유니티 3D 게임 엔진의 탄생

유니티 3D (Unity3D, 이하 유니티)는 2D, 3D 게임 엔진이다. 게임 엔진은 게임 개발에 필요한 여러 기능

을 제공함으로써 쉽게 게임을 만들 수 있게 돕는다. 이러한 게임 엔진을 이용하면 게임 개발 시 생산성과 작

업 능률을 높일 수 있다.

기존의 게임 엔진은 상용 게임 엔진부터 무료 게임 엔진까지 무척 다양하다. 대표적인 상용 게임 엔진으

로는 언리얼(UnReal ), 크라이(CryENGINE ), 하복(Havok Physic Engine ), 게임브리오(Game

Bryo ), 소스엔진(Source Engine ) 등이 있다. 이러한 고성능 게임 엔진은 높은 가격 탓에 게임을 개발하

려는 개인이나 학생이 접하기에는 어려웠던 것이 최근까지의 현실이다.

유니티 개발사에서 말하는 “게임 개발의 민주화(Democratizing Development )”라는 표어는 “이러한 현

실에서 벗어나 누구나 쉽게 게임을 만들 수 있는 훌륭한 게임 엔진을 제공하자”라는 것이다.

유니티의 장점

유니티는 2001년에 덴마크에서 처음 개발이 시작되어 2005년에 애플(Apple )의 WWDC에서 유니티 1을

처음 선보였다. 그 이후로 지속적인 업그레이드를 하면서 꾸준히 성장했고, 높은 인기를 얻고 있다. 2012

년도 애플의 앱스토어(AppStore )에 출시된 모바일 게임 중 53.1%가 유니티로 개발됐다고 한다(출처:

www.gamasutra.com ). 이처럼 유니티가 폭발적인 인기를 얻게 된 몇 가지 요인을 꼽자면 다음과 같다.

• 멀티 플랫폼(Multi Platform) 지원

• 통합개발환경(IDE; Integrated Development Environment) 제공

• 합리적인 가격 정책

• 빌트인 미들웨어(Built in Middleware)

• 커뮤니티 활성화

• 애셋스토어(Asset Store) 운영

멀티 플랫폼 지원

유니티의 가장 큰 장점은 멀티 플랫폼을 지원하는 것이다. 2008년에 서비스를 시작한 애플의 앱스토어

(AppStore )는 전 세계 1인 게임 개발자에게 큰 꿈을 가질 수 있는 장을 열었다. 이에 발맞춰 유니티 개발

Page 23: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

22 절대강좌! 유니티 3D

사는 그 해 아이폰으로 빌드할 수 있는 유니티 iPhone 버전을 출시했다. 그 후 지금까지 유니티는 지속적

으로 업데이트했고, 현재는 다음과 같이 다양한 플랫폼을 지원한다.

• PC, 맥, 리눅스

• iOS, 안드로이드, 블랙베리, 윈도우 폰 8, 타이젠(예정)

• 엑스박스360(box360), 엑스박스 원(Xbox One), 플레이스테이션, 위(Wii)

• 웹 플레이어(인터넷 익스플로러, 크롬, 파이어폭스, 사파리)

• 스마트TV

[그림 1-1] 유니티가 지원하는 다중 플랫폼 (출처: 유니티 홈페이지)

유니티는 해당 플랫폼의 라이선스만 보유하고 있다면 매우 간단하게 플랫폼을 바로 변경할 수 있다.

[그림 1-2] 간단한 플랫폼 변경 기능

Page 24: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 23

[정보]

유니티는 최근 플래시(Flash) 플랫폼에 대한 지원 중단을 선언했다. 지원을 중단하는 대표적인 이유는 어도비(Adobe) 사의

플래시에 대한 확고한 개발 및 지원 의지가 없는 것으로 판단했기 때문이라고 한다.

자세한 내용은 다음 URL에서 확인할 수 있다.

http://blogs.unity3d.com/2013/04/23/sunsetting-flash/

통합개발환경(IDE, Integrated Development Environment)

스테이지 디자인, 스크립트 코딩, 테스트, 빌드까지의 개발프로세스가 모두 유니티에서 이뤄지므로 매우 높

은 생산성을 자랑한다.

[그림 1-3] 유니티 통합 개발 환경(출처: 유니티 홈페이지)

합리적인 가격 정책

유니티는 크게 베이직 버전과 프로(Pro ) 버전으로 나뉜다. 여기에 iOS 및 안드로이드와 같은 모바일 애드

온(Add-on )도 베이직과 프로 버전으로 세분화돼 있다. 베이직 버전은 무료로 제공되고 있으며 프로 버전

의 기능이 필요할 때 별도의 라이선스를 구매해야 한다.

Page 25: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

24 절대강좌! 유니티 3D

무료 유료

Unity Basic Unity Pro

iOS iOS Pro

Android Android Pro

[표 1-1] 유니티 가격정책

[그림 1-4] 유니티 프로의 가격정책 (출처: 유니티 홈페이지)

빌트인 미들웨어(Built in Middleware)

유니티에는 다음과 같이 개발에 필요한 여러 미들웨어가 탑재돼 있다.

지형 엔진(Terrain Engine)

지형을 디자인할 수 있는 에디터를 제공한다. 섬세한 지형을 유니티에서 직접 디자인할 수 있으며 잔디, 풀,

돌, 나무 같은 지형물을 표현할 수 있다. 또한 생성한 지형 데이터를 외부로 내보내거나 가져올 수 있다.

Page 26: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 25

[그림 1-5] 지형 엔진을 이용한 디자인 결과물(출처: 유니티 홈페이지)

라이트매핑(Lightmapping – Beast)

유니티에는 현실 세계와 같이 실감 나는 조명 효과를 생성하는 비스트(Beast) 엔진이 탑재돼 있다. 비스

트 엔진은 자연스러운 조명, 컬러바운스, 그림자, 전역 조명(GI, Global Illumination)을 표현해 시각적

인 효과를 높이는 역할을 한다.

[그림 1-6] 비스트 라이트매퍼를 사용한 EA사의 드래곤 에이지(출처: 오토데스크 홈페이지)

Page 27: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

26 절대강좌! 유니티 3D

[그림 1-7] 유니티에 탑재된 디렉셔널 라이트맵(Directional Lightmap)을 사용해 조명 효과를 표현한 스텔스 튜토리얼 프로젝트

(출처: 유니티 홈페이지)

오클루전컬링(Occlusions Culling – Umbra)

오클루전컬링은 카메라의 시야를 기준으로 전방의 큰 물체 때문에 가려지는 객체를 렌더링 처리에서 제외

해 렌더링 속도를 높이는 기술로 엄브라(Umbra ) 엔진이 탑재돼 있다. 이 기능은 유니티프로에서만 제공

한다.

[그림 1-8] 오클루전컬링 적용 전후의 렌더링 비교 화면

3D 사운드 엔진(FMOD –Firelight Technologies)

게임의 사운드를 담당하는 엔진으로 3D 사운드, 에코, 코러스 및 왜곡(Distortion ) 등 다양한 음향 효과

를 연출할 수 있다.

[그림 1-9] 3D 공간에서 자유롭게 사운드 설정

오클루젼 컬링 적용 전

오클루젼 컬링 적용 후

Page 28: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 27

[그림 1-8] 오클루전컬링 적용 전후의 렌더링 비교 화면

3D 사운드 엔진(FMOD –Firelight Technologies)

게임의 사운드를 담당하는 엔진으로 3D 사운드, 에코, 코러스 및 왜곡(Distortion ) 등 다양한 음향 효과

를 연출할 수 있다.

[그림 1-9] 3D 공간에서 자유롭게 사운드 설정

오클루젼 컬링 적용 전

오클루젼 컬링 적용 후

Page 29: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

28 절대강좌! 유니티 3D

오픈 커뮤니티

오픈 커뮤니티에서는 방대한 분량의 매뉴얼과 체계적인 예제 소스를 제공한다. 유니티 홈페이지에서는 많

은 동영상 튜토리얼을 제공하고 있어 유니티 학습에 편리한 환경을 제공한다. 또한 개발 중 어려움에 봉착

했을 때 도움을 얻을 수 있는 유니티 포럼도 활발히 운영되고 있다.

[그림 1-10] 방대한 온, 오프라인 매뉴얼과 동영상 튜토리얼 제공(출처: 유니티 홈페이지)

애셋스토어(Asset Store)

애셋(Asset )의 사전적 의미는 자산이다. 유니티에서 말하는 애셋은 게임 제작에 필요한 모든 요소를 말한

다. 즉, 3D 모델, 텍스처이미지, 사운드, 파티클 효과, 유틸리티 등을 애셋이라 한다.애셋스토어는 이러한

애셋을 사고팔 수 있는 오픈 마켓으로 1인 개발자 또는 소규모 개발사에서는 이러한 애셋스토어의 도움을

받을 수 있다.

Page 30: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

[그림 1-11] 애셋스토어(출처: 유니티 홈페이지)

유니티로 만든 게임

유니티로 제작된 게임은 다양한 플랫폼으로 출시되어 많은 히트작을 내고 있다.

좀비빌 USA (Zombieville USA) 템플런2 (Temple Run2)

데드 트리거2 (Dead Trigger2) 서브웨이 서퍼 (Subway Surfers )

Page 31: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

30 절대강좌! 유니티 3D

스키사파리 (Ski Safari ) 리퍼블리크 (République)

로차드 (Rochard) 쉐도우 건 (Shadow Gun)

콜 오 브 듀 티 (COD Strike Team) 배드 피기즈 (Bad Piggies )

히 트 맨 고 ( H i t m a n G o ) 모뉴멘츠 밸리(Monument Valley )

[그림 1-12] 유니티로 제작된 인기 게임(출처: 유니티 홈페이지)

Page 32: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 31

유니티 내려받기

유니티의 설치 파일은 유니티 홈페이지에서 내려받을 수 있으며, 유니티 한글 사이트에서도 내려받을 수

있다.

• 영문 사이트: http://unity3d.com/unity/download

• 한국어 사이트: http://unity3d.com/kr/unity/download

[그림 1-13] 유니티 한국지사 홈페이지의 내려받기 페이지

이전 버전의 유니티가 필요할 경우 다운로드 버튼 아래에 있는 “지난 버전이 필요하신가요?” 링크를 통해

버전별, OS별로 내려받을 수 있다.

다운로드

유니티 구버전

Page 33: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

[그림 1-14] 이전 버전의 유니티를 내려받을 수 있는 페이지

유니티 설치

유니티 홈페이지에서 내려받은 설치 파일을 실행하면 다음과 같이 설치과정이 진행된다. 특별한 부분은 없

으므로 계속 “Next”를 선택하면 순조롭게 설치될 것이다.

[그림 1-15] 설치 시작

Page 34: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 33

[그림 1-16] 라이선스 동의

[그림 1-17] 설치옵션 선택

Example Project 옵션에서는 AngryBot 프로젝트의 설치 여부를 선택할 수 있고 MonoDevelop 옵션

은 유니티 기본 에디터인 MonoDevelop을 사용하지 않을 경우 선택하지 않는다. “Next”를 누르면 설치

할 경로를 지정할 수 있고 설치가 진행된다.

Page 35: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

34 절대강좌! 유니티 3D

[그림 1-18] 설치 파일 복사

[그림 1-19] 설치 완료

Page 36: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 35

유니티 라이선스 옵션 선택

설치를 완료하고 유니티를 처음 실행하는 과정에서 라이선스 선택과 인증 창이 나타난다. 라이선스 선택 옵

션은 세 가지가 있다.

첫 번째 옵션은 정식라이선스가 있을 때 라이선스 키를 입력하고 인증을 받는다. 두 번째 옵션은 유니티 베

이직을 기간과 관계없이 무료로 사용하는 옵션이다. 세 번째 옵션은 유니티 프로 버전을 30일 체험판으로

사용할 수 있는 옵션으로, 기간이 만료된 후에는 베이직 버전으로 바꿔서 계속 사용할 수 있다.

단기간 라이선스가 필요한 개발자를 위해 월 $75를 지불하면 유니티 프로를 사용할 수 있는 옵션도 있다.

이 책의 예제는 유니티 프로 버전을 사용하므로 정식 라이선스가 없는 독자는 세 번째 옵션을 선택해 30일

체험판을 설치한다.

[그림 1-20] 라이선스 선택 창 – 유니티 프로 30일 무료 사용 옵션 선택

[정보]

유니티 베이직과 프로의 차이점

유니티 베이직의 기능만으로도 충분히 2D 또는 3D 게임을 제작할 수 있지만 모바일 게임이나 높은 사양의 게임을 개발하려면

유니티 프로의 기능이 필요하다.

다음은 유니티 프로에서만 제공하는 기능 중 중요한 것을 나열한 것이다. 좀 더 자세한 내용은 유니티 홈페이지에서 확인할 수

있다.

Page 37: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

36 절대강좌! 유니티 3D

http://unity3d.com/unity/licenses

기능 설명

LOD(Level of detail) 폴리곤(Polygon) 수가 다른 동일한 3D 모델을 카메라와의 거리에 따라 자동으로 교체해준다.

카메라와 가까이 있을 때는 하이 폴리곤(High Polygon) 3D 모델을 보여주고 멀리 떨어지면 로

우 폴리곤(Low Polygon)으로 교체해 렌더링 속도를 높이는 기능을 제공한다.

Audio Filter FMOD의 다양한 오디오 필터 효과를 제공한다.

Video Playback, Streaming 동영상을 플레이하는 기능으로 3D 모델의 표면 또는 2D로 동영상을 플레이할 수 있으며 스트

리밍 기능을 지원한다.

Streaming Asset Bundles 에셋번들 파일을 스트리밍 방식으로 내려받을 수 있다.

Custom Splash Screen 앱 또는 실행파일이 시작할 때 유니티 로고 이미지 대신 자신의 로고 이미지를 보여줄 수 있다.

Light Probes 실시간 조명을 사용하지 않아도 동일한 조명 효과를 낼 수 있다.

Lightmapping with Global

Illumination

라이트맵 적용 시 전역조명 효과를 사용할 수 있다.

Area Light 라이트맵 적용 시 직사각형 형태의 간접조명을 사용할 수 있다.

Occlusion Culling 카메라 렌더링 영역(Frustum) 내에 있는 모든 3D 모델은 렌더링 처리하지만 오클루전컬링은

렌더링 영역에 있어도 카메라 시야에서 보이지 않는 3D 모델을 렌더링하지 않는다.

Deferred Rendering AAA 렌더링 기술인 지연 렌더링 처리를 지원한다.

Static Batching Static Batch 기능을 사용할 수 있다. 게임 내 Static 처리한 객체들을 묶어서 드로우함으로써

CPU 부하를 줄일 수 있다.

Navmesh: Dynamic Obstacles

and Priority

움직이는 물체에 장애물 기능을 부여해 추적 대상이 장애물을 회피하면서 추적할 수 있는 기

능을 지원한다.

Native Code Plugins Support 실행되는 플랫폼의 디바이스와 Native Library를 이용해 통신할 수 있는 기능을 지원한다.

Profiler and GPU profiling 게임의 최적화를 위한 모니터링 기능을 제공한다.

[표 1-2] 유니티 프로에서만 지원하는 기능

유니티 계정 생성 및 로그인

라이선스 옵션을 선택한 후 다음으로 진행하면 로그인 화면으로 연결된다. 유니티 계정이 있다면 해당 아이

디와 비밀번호로 로그인하고 계정이 없는 독자는 하단의 “Create Account”를 클릭해 유니티 계정을 생성

한다.

Page 38: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 37

[그림 1-21] 로그인 창

유니티 계정을 만들 때 입력한 Email로 계정을 활성화하는 Email이 전송된다. 계정 등록 후 Email을 확인

해 계정을 활성화한다.

[그림 1-22] 유니티 계정생성

Page 39: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

38 절대강좌! 유니티 3D

[그림 1-23] 계정등록 완료

유니티 인터페이스

앞서 유니티 설치와 인증 절차를 거친 후 자동으로 유니티가 실행되면 [그림 1-24]와 같이 데모 프로젝트

가 열린다.

[그림 1-24] 유니티를 처음 실행했을 때 열리는 AngryBot 데모 프로젝트

Page 40: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 39

유니티를 처음 접하는 독자는 아마도 이 프로젝트를 분석해 봐야겠다는 생각을 할 수 없을 정도로 복잡하게

느껴질 것이다. 이 책의 마지막 페이지를 덮고 나서 다시 이 데모 프로젝트를 열어서 살펴봤을 때 어느 정도

분석할 수 있다는 자신감이 생겼으면 하는 것이 필자의 바람이다.

AngryBot 데모 프로젝트가 자동으로 열리지 않을 때는 다음 경로에서 찾을 수 있다.

• 윈도우 : C :\Users\Public\Documents\Unity Projects\4-0_AngryBots

• 맥 : /Users/Shared/Unity/4-0_AngryBots

4-0_AngryBots/Assets/AngryBots.unity 파일을 더블클릭하면 데모 프로젝트가 열린다.

[그림 1-25] 데모 프로젝트 열기

TIP

유니티는 비주얼 툴이므로 프로그래밍 능력 못지않게 툴을 능숙하게 다룰 줄 알아야 한다. 따라서 다양한

단축키 또는 단축키와 마우스의 조합을 숙지해야 빠르게 개발할 수 있다. 물론 단기간 내에 습득하기는 어

렵지만 꾸준히 유니티를 접한다면 차츰 손에 익으면서 능숙히 다룰 수 있게 될 것이다. 단축키에 대해서는

앞으로 진행하면서 틈틈이 언급하겠다.

유니티는 베이직과 프로 버전에 따라 인터페이스 스킨을 Light와 Dark 스킨으로 변경할 수 있다. 유니티

설치 과정에서 30일 체험판으로 유니티 프로를 설치했다면 [그림 1-26]과 같이 Dark 스킨으로 설정된다.

Page 41: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

이 책에서는 독자 여러분의 가독성을 위해 Light 스킨을 사용한다. 스킨을 변경하려면 맥 사용자는 메뉴

의 “Unity → Preferences…”를 선택하고 윈도우 사용자는 메뉴의 “Edit → Preferences…”를 선택하면

Unity Preferences 창이 열린다. 6개의 탭으로 구분돼 있는데, 첫 번째 General 탭의 Skin (Pro Only )

항목에서 스킨을 설정할 수 있다.

[그림 1-26] 스킨 변경

유니티의 기본적인 인터페이스는 [그림 1-27]과 같이 구성돼 있다.

[그림 1-27] 유니티 인터페이스 구조

툴바(Tool bar)

뷰 영역

상태바(Status bar)

Page 42: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 41

뷰(View)

각 탭으로 분리된 윈도우(Window )를 뷰(View )라고 한다. 뷰의 명칭은 탭에 표기돼 있으며 이 탭을 드

래그 앤 드롭해 자유롭게 배치할 수 있다. 뷰별로 세부적으로 살펴보자.

1. Project 뷰

Project Browser라고도 한다. 이 Project 뷰는 게임 제작에 필요한 모든 애셋을 모아 두는 곳이다.

[그림 1-28] Project 뷰

Project 뷰는 다른 뷰와는 달리 두 개의 칼럼(Column )으로 분리돼 있으며, 하나의 칼럼으로 변경하는 옵

션을 제공한다.

[그림 1-29] Project 뷰의 칼럼 레이아웃 변경 컨텍스트 메뉴

뷰탭에서 마우스 오른쪽 버튼클릭 (컨텍스트 메뉴)

마우스 왼쪽 버튼클릭

Page 43: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

Project 뷰는 3D 모델, 텍스처, 사운드파일, 스크립트와 같은 모든 애셋을 저장하고 Project 뷰에 나열된

폴더 구조와 파일은 “{프로젝트의 저장경로}/Assets/” 폴더 아래에 물리적으로 저장되며 파일탐색기에서

확인할 수 있다.

[그림 1-30] Project 뷰의 실제 저장 경로

2. Scene 뷰

Scene 뷰는 3차원 공간을 표현하며 스테이지를 디자인하고 플레이어를 배치해 게임을 설계하는 뷰로

Project 뷰에 나열된 애셋을 Scene 뷰로 드래그 앤 드롭해 배치한다.

[그림 1-31] 게임을 디자인하는 Scene 뷰

Project 뷰 실제 저장위치

컨트롤 바

Page 44: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 43

Scene 뷰의 헤더에 있는 바를 컨트롤 바(Control Bar )라고 한다. Scene 뷰의 컨트롤 바는 드로우 모드

(Draw Mode )와 렌더 모드(Render Mode )의 옵션을 변경하는 드롭다운 버튼이 있다. 개발 시 적절한

옵션으로 변경해 볼 수 있으며, 실행 시에는 영향을 미치지 않는다.

[그림 1-32] 드로우 모드 옵션

드로우 모드의 옵션에 따라 Scene 뷰의 화면은 다음과 같이 바뀐다.

• Textured: 기본옵션으로 3D 모델의 표면에 텍스처를 입혀서 보여준다. 실제 게임을 실행했을 때 보이는 화면과

같다.

[그림 1-33] Textured 옵션일 때의 Scene 뷰

드로우 모드 옵션

Page 45: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

• Wireframe: 텍스처는 제외하고 3D 모델의 메쉬(Mesh)만 보여준다.

[그림 1-34] Wireframe 옵션일 때의 Scene 뷰

• Textured Wire: 텍스처와 메쉬를 동시에 표현하는 옵션이다.

[그림 1-35] Textured Wire 옵션일 때의 Scene 뷰

• Render Paths: 렌더링 방식에 따라 다른 색상으로 표현한다.

[그림 1-36] Render Paths 옵션일 때의 Scene 뷰

Page 46: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 45

Render Paths 색상 렌더링 방식

녹색 Deferred lighting

노란색 Forward rendering

빨간색 Vertex Lit

[표 1-3] 색상에 따른 렌더링 방식

• Lightmap Resolution: 라이트맵(Lightmap)을 베이크했을 때 적절한 해상도 여부를 판단하기 위해 화면에 격자무

늬가 오버레이(Overlay)되어 표현된다.

[그림 1-37] Lightmap Resolution 옵션일 때의 Scene 뷰

렌더 모드의 옵션은 Scene의 다양한 렌더링 정보를 조회하는 기능을 제공한다.

[그림 1-38] 렌더 모드 옵션

렌더 모드 옵션

Page 47: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

46 절대강좌! 유니티 3D

• RGB: 정상적인 색상으로 렌더링된 화면을 보여준다.

• Alpha: 투명 처리된 셰이더를 사용하는 3D 모델을 표현하기 위해 흑백으로 보여준다.

• Overdraw: 오버드로우가 발생하는 지점에 색상을 중첩해 진하게 보여준다. 오버드로우란 카메라의 시야에 보이

지 않는 곳에서 중첩해 드로우(Draw)가 발생하는 것을 말하며, 성능 저하의 원인이 된다.

• Mipmaps: 카메라로부터 거리가 멀어질수록 텍스처의 품질을 낮추어 렌더링 부하를 줄이는 것을 밉맵(Mipmap)

처리된 텍스처라 한다. 이 모드는 밉맵처리된 텍스처의 사이즈가 적절한지를 판단할 수 있다. 빨간색은 텍스처가

필요 이상으로 크다는 의미이고, 파란색은 작다는 의미다.

RGB Alpha

OverDraw Mipmaps

[그림 1-39] 렌더 모드에 따른 Scene 뷰

컨트롤 바에 있는 옵션의 기능은 다음과 같다.

• 2D / 3D 화면전환: Scene 뷰 화면을 2D와 3D로 전환한다.

• 조명 효과: 조명 효과의 적용 여부를 선택할 수 있다.

Page 48: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 47

• 음향 효과: 음향 효과의 적용 여부를 선택할 수 있다.

• 이펙트(Effect): Skybox, Fog, Flares, Animated Materials 효과의 적용 여부를 선택한다.

[그림 1-40] 컨트롤 바의 나머지 기능

컨트롤 바의 마지막 옵션인 기즈모(Gizmos )는 Scene 뷰에 있는 특정 오브젝트에 아이콘을 표시해 쉽게

식별할 수 있게 해주는 기능으로, 아이콘의 크기와 표시 여부를 설정할 수 있다.

[그림 1-41] 기즈모(Gizmos) 옵션

이펙트 적용여부

음향 효과 끔/켬조명 효과 끔/켬

2D/3D 전환

기즈모

클릭하면 드롭다운 메뉴가 펼쳐진다.

Page 49: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

48 절대강좌! 유니티 3D

Scene 뷰에서 유용한 단축키 F

Scene 뷰에 배치된 게임오브젝트를 빠르게 찾아가는 방법은 Hierarchy 뷰에서 해당 게임오브젝트를 더블클릭하면 된다. 다

른 방법으로는 Hierarchy 뷰에서 해당 게임오브젝트를 선택한 다음 마우스 커서를 Scene 뷰로 이동시키고 F 키를 누르면

해당 객체를 찾아간다.

단축키 F를 두 번 빠르게

이동하는 게임오브젝트를 따라가게 하기 위해 F 키를 빠르게 두 번 키인하면 씬뷰에서 해당 게임오브젝트를 따라서 이동할 수

있다.

TIP

3. Hierarchy 뷰

Hierarchy 뷰는 Scene 뷰에 배치한 모든 객체를 계층 구조로 나열해서 보여준다. Scene 뷰에서 마우스로

클릭해 선택하기 어렵거나 찾기 어려울 때도 Hierarchy 뷰에서 쉽게 선택할 수 있다. 또는 컨트롤 바의 검

색 기능을 이용할 수도 있다.

[그림 1-42] Hierarchy 뷰 – Scene 뷰에 있는 모든 게임오브젝트를 계층 구조로 나열

Page 50: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 49

Hierarchy 뷰에 나열된 요소는 모두 게임오브젝트다. 게임오브젝트는 Scene 뷰에 가져다 놓을 수 있는 모

든 것을 의미하며 가장 기본이 되는 단위를 말한다. Hierarchy 뷰는 하나의 게임오브젝트를 선택해 다른

게임오브젝트로 드래그 앤 드롭해 그룹화할 수 있는 기능이 있다. 이 기능을 페어런팅(Parenting )이라

한다.

[그림 1-43] 페어린팅(Parenting)해서 게임오브젝트를 그룹화

유니티 4.6에서 Hierarchy 뷰의 정렬 방식이 바뀌었다. 기본 정렬 방식은 TransformSort이며 게임오브젝

트가 생성된 순서대로 정렬된다. 또한 원하는 위치로 이동시켜 배치할 수 있다. 유니티 4.6 이전 버전의 방식

인 알파벳 정렬로 바꾸려면 Preference 창에서 “Enable Alpha Numberic Sorting”옵션을 활성화한다.

알파벳 정렬 옵션을 활성화하면 Hierarchy 뷰의 컨트롤바에 정렬 옵션 툴 버튼이 표시되어 쉽게 정렬 방식

을 바꿀 수 있다.

[그림 1-44] Hierarchy 뷰의 정렬방식 설정 옵션

알파벳 정렬 옵션 활성화

정렬 옵션 메뉴

Page 51: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

50 절대강좌! 유니티 3D

4. Inspector 뷰

Inspector 뷰는 현재 선택된 게임오브젝트의 속성을 보여주는 뷰로서 해당 속성을 조회하거나 수정할 때

사용하는 뷰다. 같은 속성에 한해 동시에 여러 개의 게임오브젝트를 선택하고 Inspector 뷰에서 수정할 수

있다.

[그림 1-45] Inspector 뷰 – 선택된 Player의 속성을 확인할 수 있다.

5. Game 뷰

Game 뷰는 개발 진행 중에 게임을 실행해 미리 볼 수 있는 뷰로서 Scene 뷰에 있는 메인 카메라의 시야로

렌더링해서 보여준다. 해당 프로젝트를 빌드해서 실행하거나 모바일에서 구동할 때 보이는 화면과 동일하

다. 또한 Game 뷰에 있는 컨트롤 바의 해상도를 선택하면 다양한 해상도로 볼 수 있다.

Page 52: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 51

[그림 1-46] 플랫폼별로 미리보기의 해상도를 지정 가능

[그림 1-46]와 같은 iOS, 안드로이드 플랫폼별 해상도는 해당 플랫폼으로 변경한 후에 적용된다. 메뉴의 “File → Build

Settings…”를 선택하면 Build Settings 창이 열린다(맥: command + shift + B, 윈도우: Ctrl + Shift + B). 변경하

려는 플랫폼을 선택한 후 왼쪽 하단의 Switch Platform을 클릭하면 변경된다. 그러고 나면 해당 프로젝트의 리소스 변경이

시작되며 잠시 후 완료된다. 플랫폼을 전환하는 데 걸리는 시간은 프로젝트의 리소스 크기에 따라 결정된다.

[그림 1-47] 플랫폼 변경 및 지원하는 플랫폼 목록

TIP

안드로이드 플랫폼iOS 플랫폼

Page 53: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

52 절대강좌! 유니티 3D

6. Console 뷰

Console 뷰는 디버깅(Debugging ) 시 로그(Log )를 출력하는 뷰로서 출력하는 메시지는 정보

(Information ), 경고(Warning ), 오류(Error )로 분류해 메시지 타입별로 필터링해 출력할 수 있다.

[그림 1-48] Console 뷰

Console 뷰는 개발 시 자주 보는 뷰이므로 반드시 꼭 단축키를 기억해두자(맥: command + shift + C,

윈도우: Ctrl + Shift + C ). 또한 에러 메시지가 여러 개 표시될 경우 맨 위에 있는 에러 메시지부터 해결해

야 한다.

툴 바(Tool bar)

[그림 1-49] 툴 바의 기능

툴 바는 위 그림과 같이 다섯 개의 기능으로 나뉜다.

Transform 툴

Transform 툴 버튼은 디자인 작업 시 가장 자주 사용하는 기능이므로 단축키를 기억해두는 편이 좋다. 단

축키는 왼쪽부터 Q, W, E, R, T다.

출력되는 메시지를 종류별로 필터링할 수 있다.

Transform 툴 Transform 기즈모 토글 실행/일시정지/스탭 레이어 드롭다운 레이아웃 드롭다운

Page 54: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

• 이동 툴 버튼 – 마우스 커서가 로 바뀌며, Scene 뷰의 화면을 이동시킬 수 있다.

[그림 1-50] 이동 툴 버튼(단축키 - Q)

• Transform 툴 버튼 – 선택한 게임오브젝트의 3차원 좌표축(Transform)이 표시되며 해당 축을 클릭하고 드래그하

면 해당 축 방향으로 이동시킬 수 있다.

[그림 1-51] Transform 툴 버튼(단축키 - W)

이동 툴 버튼단축키 Q

Transform 툴 버튼단축키 W

좌표축을 마우스 클릭 후 드래그하면 이동한다.

Page 55: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

• Rotate 툴 버튼 – 선택한 객체를 회전시킨다.

[그림 1-52] Rotate 툴 버튼(단축키 - E)

• Scale 툴 버튼 – 선택한 객체의 스케일을 변경한다.

[그림 1-53] Scale 툴 버튼(단축키 - R)

Rotate 툴 버튼단축키 E

마우스 클릭 후 드래그하면 회전한다.

단축키 R

Page 56: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 55

• Rect 툴 버튼 – 선택한 UI 객체의 이동, 회전, 스케일을 변경한다.

[그림 1-54] Rect 툴 버튼(단축키 - T )

마우스와 키보드 조합의 Scene 뷰 조작 기능

• 마우스 휠 스크롤

Scene 뷰를 확대/ 축소한다.

• 맥: option + 마우스 왼쪽 버튼, 윈도: Alt + 마우스 왼쪽 버튼

Scene 뷰의 화면 중심을 기준으로 회전하는 기능

• 맥: option + command + 마우스 왼쪽 버튼, 윈도: Ctrl + Alt + 마우스 왼쪽 버튼

Scene 뷰의 화면 중심을 이동하는 기능(이동 툴 버튼과 동일한 기능)

• 마우스 오른쪽 버튼 + (W/A/S/D)

마우스 오른쪽 버튼을 클릭하고 드래그하면 시야각이 변하며 키보드 W, A, S,D 키로 이동할 수 있다. FPS 게

임의 주인공 조작법과 같다.

• 맥: option + 마우스 오른쪽 버튼, 윈도: Alt + 마우스 오른쪽 버튼

option/Alt 키를 누르고 마우스 오른쪽 버튼을 클릭한 상태로 드래그하면 Scene 뷰의 화면이 확대/ 축소된다

(마우스 휠 스크롤과 동일한 기능)

TIP

Rect 툴 버튼단축키 T스케일 툴 버튼

Page 57: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

56 절대강좌! 유니티 3D

피봇(Pivot) / 센터(Center)

피봇/센터 툴 버튼은 선택한 3D 모델의 중심 좌표를 어떻게 표시할 것인가에 대한 옵션이다. 토글 방식으

로 전환되며 피봇 옵션은 3D 모델링 툴에서 모델링할 때 설정한 원점 좌표에 좌표축이 표시되며, 센터옵션

으로 설정하면 3D 모델의 중앙에 좌표축을 표시한다. 단축키는 키보드 Z이며 실행 시 영향을 미치지는 않

는다.

[그림 1-55] 피봇(Pivot )과 센터(Center ) 옵션 선택에 따른 좌표축 표시

로컬/글로벌(Local/Global )

로컬/글로벌 툴 버튼은 선택한 게임오브젝트의 좌표축을 로컬 좌표(Local Coordinate ) 또는 글로벌 좌표

(Global Coordinate )로 표시하는 옵션이다. 토글 방식으로 전환되며 글로벌 좌표는 Scene 뷰의 오른쪽

상단에 있는 십자 모양의 기즈모로 표시한다.

피봇(Pivot) 옵션 센터(Center) 옵션

Page 58: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 57

[그림 1-56]는 3D 모델을 Y축을 기준으로 -45° 회전시킨 후 좌표계를 변경시킨 화면이다. 단축키는 키보

드 X이며, 실행 시 영향을 미치지는 않는다.

[그림 1-56] 로컬 좌표계와 글로벌 좌표계의 축 방향이 달라짐

[정보]

글로벌 좌표(Global Coordinate)는 3차원 공간의 절대 좌표를 의미하며 변하지 않는 기준 좌표다. 반면 Scene 뷰에 있는

게임오브젝트는 자신만의 좌표를 갖고 있다. 이것을 로컬 좌표(Local Coordinate)라 한다.

레이어(Layers )

Scene 뷰에 배치된 모든 게임오브젝트는 레이어를 지정할 수 있다. 툴 바의 레이어 옵션은 특정 레이어만

선택적으로 Scene 뷰에 표시할 수 있다.

로컬 좌표계(Local Coordinate) 글로벌 좌표계(Global Coordinate)

Page 59: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

[그림 1-57] 특정 레이어만 Scene 뷰에 표시 가능

Nothing으로 설정하면 Scene 뷰에 아무것도 표시되지 않으므로 주의해야 한다.

레이아웃(Layout )

유니티는 뷰의 배치를 자유롭게 할 수 있는 기능을 제공한다. 툴바의 오른쪽 상단에 레이아웃(Layout ) 옵

션을 클릭하면 여러 형태의 레이아웃을 드롭다운 메뉴에서 선택할 수 있다.

레이아웃을 저장하면 레이아웃 드롭다운 메뉴에 표시되며,특정 레이아웃을 선택하면 유니티 IDE의 뷰 배

치가 해당 레이아웃에 따라 바뀐다.

[그림 1-58] 레이아웃 드롭다운 메뉴

Page 60: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

01 _ 유니티 3D 소개 59

2 by 3 레이아웃 4 Split 레이아웃

Default 레이아웃 Tall 레이아웃

[그림 1-59] 다양한 레이아웃 옵션

단축키 설정

마우스 커서를 특정 뷰에 두고 스페이스바를 누를 때마다 해당 뷰가 최대화/최소화된다. 참고로 이 단축키

는 유니티 4.3에서 Shift + Space로 바뀌었다.

유니티의 단축키 설정은 Unity Preferences 창에서 설정한다(맥: “Unity → Preferences…”, 윈도우:

“Edit → Preferences…”). Unity Preferences 창의 Keys 탭에서는 기본적인 단축키를 설정할 수 있다.

뷰를 최대화/최소화하는 단축키를 스페이스바로 사용했던 독자라면 Keys 탭에서 자신에게 익숙한 단축키

로 바꿀 수 있다.

Page 61: 절대강좌! 유니티 3D (개정증보판) : Unity 3D 전문 개발자가 알려주는 효과적인 게임 제작 기법

60 절대강좌! 유니티 3D

[그림 1-60] 유니티 4.3에서 뷰의 최대화/최소화 단축키의 기본 설정 값 변경

정리

1장에서는 유니티 게임 엔진의 전반적인 내용과 유니티 인터페이스에 대해 알아봤다. 유니티 인터페이스에

익숙해지는 가장 빠른 방법은 단축키를 숙지하는 것이라고 생각한다. 1장에서 언급한 단축키 외에도 많은

단축키가 있으므로 조금씩 익혀나가기를 권장한다.