핵심강좌! 유니티5: 예제로 배우는 unity 게임 개발 필수 기술 완벽 가이드

36

Post on 25-Jul-2016

291 views

Category:

Documents


25 download

DESCRIPTION

이재환 지음 | 게임 개발 시리즈_017 | ISBN: 9791158390297 | 40,000원 | 2016년 02월 29일 발행 | 704쪽 | Unity, Unity 5, 게임, 게임 개발, 게임 프로그래밍, 유니티, 유니티 5

TRANSCRIPT

Page 1: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드
Page 2: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

책2.indb 1 2016-02-18 오후 6:37:39

Page 3: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

유니티의 인기를 반영하듯 다양한 유니티 입문서가 출간되고 있다. 대다수 책이 나름 친절한 설명으로

초보자가 유니티에 편하게 적응하게 하고, 빨리 구체적 결과를 만들어 주는 것을 목표로 하고 있다.

그러나 다른 IT 분야와 다르게 유독 유니티 입문서는 실제 게임개발의 과정을 따라가면서 중간중간 유

니티의 기초적인 사용법을 설명해 나가는 구성으로 된 책이 대부분이다. 이렇다 보니 많은 학습자들이

책의 예제를 만들 때는 잘 따라 만들다가도 막상 자기 생각을 게임으로 만들기 위해 프로젝트를 진행하

면 어떤 기능을 어떻게 적용해야 하는지 모르는 경우를 많이 보았다.

전체적인 흐름을 이어가기 위해 개별 기능에 대한 정리를 못 하였기 때문이다. 그래서 대부분 같은 예

제를 여러 번 반복적으로 만들어보면서 스스로 기능에 대한 정리가 끝난 학습자들만 그 기능을 원활하

게 사용하는 것을 보았다.

그렇다고 해서 실제 게임개발 과정을 따라가면서 유니티의 기능과 사용법을 설명하는 방식이 잘못되었

다는 것은 아니다. 이 방법이 학습자에게 조금이라도 더 흥미를 주고, 단조롭지 않은 학습 방법이고 이

를 선호하는 학습자도 많다.

하지만 이런 학습 방법이 안 맞는 사람도 있다. 이 책은 그런 사람들을 위해 쓰여진 것이다. 그렇다고 해

서 매뉴얼이나 API 레퍼런스처럼 백과 사전식 나열식의 학습 방법은 아니다.

이 책은 유니티로 게임을 개발하는 과정에서 꼭 배워야 하는 필수적인 기술요소들에 대해 간단하지만

다양한 여러 핵심예제를 만들어 보면서 기능에 대한 이해를 높일 수 있도록 구성하였다. 이렇게 기술요

소별 이해를 목표로 만들어진 예제는 나중에는 레고 블록처럼 자기만의 게임을 만들 때 부품처럼 사용

할 수 있을 것이다.

이 책의 내용이 유니티 활용과 게임 개발에 작은 도움이 될 수 있기를 희망한다.

이 책에서 사용하는 예제 소스는 위키북 홈페이지에서 내려받을 수 있다.

www.wikibook.co.kr

IV

서문

책2.indb 4 2016-02-18 오후 6:37:40

Page 4: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

목차

1.1 유니티3D 설치 ............................................................................................................... 2

내려받기 ............................................................................................................................. 2

설치 ..................................................................................................................................... 4

실행 ..................................................................................................................................... 8

1.2 첫 프로젝트 .................................................................................................................. 11

프로젝트 생성 ............................................................................................................... 12

화면 구성 ........................................................................................................................ 15

1.3 우리들만의 규칙 ......................................................................................................... 16

프로젝트 뷰 폴더 구분 .............................................................................................. 17

1.4 기본 조작 ...................................................................................................................... 19

게임 오브젝트 추가 ..................................................................................................... 19

트랜스폼 툴 .................................................................................................................... 21

기즈모 .............................................................................................................................. 21

씬 뷰의 화면 이동/회전/줌 ....................................................................................... 24

저장 ................................................................................................................................... 26

1.5 기본 용어 ...................................................................................................................... 28

2.1 Snap ............................................................................................................................... 33

스냅 설정 ......................................................................................................................... 33

정점 스냅(Vertex Snap) ............................................................................................ 34

표면 스냅(Surface Snap) .......................................................................................... 35

2.2 Global vs. Local ....................................................................................................... 41

글로벌 좌표 .................................................................................................................... 42

로컬 좌표 ......................................................................................................................... 42

2.3 Parent vs. Child ....................................................................................................... 44

01유니티3D

설치와 설정

02기본 익히기

V

책2.indb 5 2016-02-18 오후 6:37:40

Page 5: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

3.1 재질 ................................................................................................................................. 49

재질을 적용하는 방법 ................................................................................................ 49

3.2 Material ......................................................................................................................... 50

재질로 색 지정하기 ..................................................................................................... 54

에셋스토어 사용하기 ................................................................................................... 58

재질로 텍스쳐 지정하기 ........................................................................................... 63

3.3 Physics Material ..................................................................................................... 66

에셋스토어 사용하기 .................................................................................................. 68

재질로 텍스쳐 지정하기 ............................................................................................ 70

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

물리 적용하기 ................................................................................................................ 73

물리 재질 적용하기 ..................................................................................................... 76

4.1 Move .............................................................................................................................. 86

조명 .................................................................................................................................. 86

도움말 활용하기 .......................................................................................................... 90

스크립트 컴포넌트 생성 ............................................................................................. 92

스크립트 작성 ............................................................................................................... 96

Vector3 ........................................................................................................................... 99

코딩 시 주의사항 ....................................................................................................... 100

유니티의 단위 ............................................................................................................. 101

Congratulation! .......................................................................................................... 101

스크립트 작성 ............................................................................................................. 102

프레임 시간의 보정 .................................................................................................. 105

03재질

04트랜스폼

목차

VI

책2.indb 6 2016-02-18 오후 6:37:41

Page 6: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

4.2 Rotate ......................................................................................................................... 107

스크립트 작성 ............................................................................................................. 108

스크립트 작성 .............................................................................................................. 113

4.3 Identity ....................................................................................................................... 115

스크립트 작성 .............................................................................................................. 117

4.4 Throw ......................................................................................................................... 125

스크립트 작성 ............................................................................................................. 126

FixedUpdate ................................................................................................................ 127

GetComponent< > ................................................................................................... 128

스크립트 작성 ............................................................................................................. 132

4.5 Jump .......................................................................................................................... 133

스크립트 작성 ............................................................................................................. 135

스크립트 작성 ............................................................................................................. 138

스크립트 작성 ............................................................................................................. 140

4.6 LookAt ....................................................................................................................... 143

스크립트 작성 ............................................................................................................. 145

4.7 RotateAround ......................................................................................................... 148

스크립트 작성 ............................................................................................................. 149

5.1 Move ........................................................................................................................... 153

스크립트 작성 ............................................................................................................. 156

5.2 Rigidbody ................................................................................................................. 158

리지드바디의 질량 .................................................................................................... 164

올바른 크기 사용 ...................................................................................................... 164

05충돌

VII

책2.indb 7 2016-02-18 오후 6:37:41

Page 7: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

5.3 Collision .................................................................................................................... 164

스크립트 작성 ............................................................................................................. 165

콘솔(Console) ............................................................................................................. 168

5.4 Trigger ....................................................................................................................... 173

스크립트 작성 .............................................................................................................. 174

트리거 설정 .................................................................................................................. 175

5.5 Kinematic ................................................................................................................. 183

키네마틱 설정 ............................................................................................................. 184

스크립트 작성 ............................................................................................................. 187

스크립트 적용 ............................................................................................................. 187

키네마틱 설정 ............................................................................................................. 188

6.1 Character Controller ............................................................................................ 192

6.2 Jump .......................................................................................................................... 193

스크립트 작성 ............................................................................................................. 197

6.3 Move ...................................................................................................................... 200

스크립트 작성 ............................................................................................................. 204

6.4 Collision .................................................................................................................... 209

스크립트 작성 ............................................................................................................. 210

태그(Tag) 설정 ............................................................................................................ 211

06캐릭터

컨트롤러

목차

VIII

책2.indb 8 2016-02-18 오후 6:37:41

Page 8: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

7.1 사운드 ....................................................................................................................... 222

지원 포맷 ...................................................................................................................... 222

7.2 Play ............................................................................................................................. 223

사운드 적용하기 ........................................................................................................ 227

스크립트 작성 ............................................................................................................. 231

7.3 PlayOneShot ........................................................................................................... 233

스크립트 작성 ............................................................................................................. 234

7.4 WhenDestroy .......................................................................................................... 235

스크립트 작성 ............................................................................................................. 236

7.5 DestroyDelayed ..................................................................................................... 238

스크립트 작성 ............................................................................................................. 239

7.6 AudioManager ....................................................................................................... 241

스크립트 작성 ............................................................................................................. 242

7.7 Check3DSound ..................................................................................................... 246

스크립트 작성 ............................................................................................................. 246

7.8 PlayClipAtPoint ...................................................................................................... 251

스크립트 작성 ............................................................................................................. 252

8.1 카메라 시점 ............................................................................................................... 257

8.2 Follow ......................................................................................................................... 259

스크립트 작성 ............................................................................................................. 262

07사운드

08카메라

IX

책2.indb 9 2016-02-18 오후 6:37:41

Page 9: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

9.1 Skybox ....................................................................................................................... 272

스크립트 작성 .............................................................................................................. 274

9.2 RendererSet ............................................................................................................ 278

에셋스토어 사용하기 ................................................................................................ 278

스카이박스 머티리얼 만들기 ................................................................................. 280

9.3 CameraSet ............................................................................................................... 287

10.1 카메라 ....................................................................................................................... 292

카메라 투영 방식 ....................................................................................................... 292

2D처럼 만들기 ............................................................................................................ 293

10.2 좌표계 ....................................................................................................................... 294

월드(World) 좌표계 ................................................................................................... 294

스크린(Screen) 좌표계 ............................................................................................ 295

GUI 좌표계 .................................................................................................................. 295

뷰포트(Viewport) 좌표계 ........................................................................................ 296

10.3 Unity GUI ................................................................................................................ 296

유니티의 GUI 시스템 ................................................................................................ 296

스크립트 작성 ............................................................................................................. 298

스크립트 추가 작성 .................................................................................................. 302

스크립트 작성 ............................................................................................................. 304

09스카이박스

10Unity GUI

(Legacy)

목차

X

책2.indb 10 2016-02-18 오후 6:37:41

Page 10: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

11.1 Prefab ........................................................................................................................ 308

프리팹의 특징 ............................................................................................................. 310

스크립트 작성 .............................................................................................................. 314

트레일 렌더러(Trail Renderer) ............................................................................... 317

프리팹 만들기 .............................................................................................................. 319

11.2 Instantiate ................................................................................................................ 320

스크립트 작성 ............................................................................................................. 323

스크립트 작성 ............................................................................................................. 325

12.1 Particles ................................................................................................................... 329

파티클 에셋 추가 ....................................................................................................... 333

12.2 Instantiate ............................................................................................................... 338

스크립트 작성 ............................................................................................................. 341

13.1 Raycast .................................................................................................................... 345

스크립트 작성 ............................................................................................................. 346

스크립트 작성 ............................................................................................................. 351

스크립트 작성 ............................................................................................................. 357

스크립트 수정 ............................................................................................................. 361

스크립트 수정 ............................................................................................................. 363

13.2 ScreenPointToRay ............................................................................................. 365

스크립트 작성 ............................................................................................................. 367

스크립트 작성 ............................................................................................................. 370

스크립트 작성 ............................................................................................................. 373

11프리팹

12파티클

13레이캐스트

XI

책2.indb 11 2016-02-18 오후 6:37:42

Page 11: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

14.1 Distance ................................................................................................................... 376

스크립트 작성 ............................................................................................................. 377

14.2 Random .................................................................................................................. 381

스크립트 작성 ............................................................................................................. 381

14.3 FindChild ................................................................................................................ 383

스크립트 작성 ............................................................................................................. 384

15.1 기울기 ........................................................................................................................ 388

스크립트 작성 ............................................................................................................. 389

15.2 중력 가속도계 ........................................................................................................ 398

스크립트 수정 ............................................................................................................. 398

16.1 Coroutine ................................................................................................................ 400

16.2 Subroutine ............................................................................................................. 400

스크립트 작성 ............................................................................................................. 402

16.3 Yield .......................................................................................................................... 403

스크립트 작성 ............................................................................................................. 404

16.4 ThreadSleep ......................................................................................................... 406

스크립트 작성 ............................................................................................................. 407

14유용한 API

15중력

가속도계

16코루틴

목차

XII

책2.indb 12 2016-02-18 오후 6:37:42

Page 12: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

16.5 AsyncOperation .................................................................................................. 410

스크립트 작성 .............................................................................................................. 411

스크립트 작성 .............................................................................................................. 413

16.6 AnswerCheck ...................................................................................................... 416

스크립트 작성 .............................................................................................................. 417

17.1 LoadLevel ............................................................................................................... 423

첫 번째 씬 만들기 ..................................................................................................... 423

두 번째 씬 만들기 ..................................................................................................... 430

씬 전환 .......................................................................................................................... 432

스크립트 작성 ............................................................................................................. 433

씬 전환 .......................................................................................................................... 437

씬 전환 .......................................................................................................................... 439

실행 ................................................................................................................................ 439

17.2 LifeCycle ................................................................................................................. 440

스크립트 작성 ............................................................................................................. 441

두 번째 씬 작업 ......................................................................................................... 444

씬 전환 .......................................................................................................................... 446

실행 ................................................................................................................................ 447

18.1 메서드 호출 ............................................................................................................. 450

스크립트 작성 ............................................................................................................. 451

스크립트 작성 ............................................................................................................. 452

메서드를 호출하는 세 가지 방법 ......................................................................... 454

17씬 전환

18메서드

호출

XIII

책2.indb 13 2016-02-18 오후 6:37:42

Page 13: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

19.1 PlayerPrefs ............................................................................................................. 458

Static Functions ......................................................................................................... 458

스크립트 작성 ............................................................................................................. 459

20.1 UI ................................................................................................................................ 464

20.2 Rect Transform ................................................................................................... 464

UI 렉트 툴 조작 .......................................................................................................... 468

UI Rect Transform .................................................................................................... 470

피봇 포인트 .................................................................................................................. 471

앵커 포인트 ................................................................................................................. 472

20.3 Text .......................................................................................................................... 475

스크립트 작성 ............................................................................................................. 479

20.4 Button ...................................................................................................................... 482

스크립트 작성 ............................................................................................................. 483

20.5 Toggle ..................................................................................................................... 487

스크립트 작성 ............................................................................................................. 488

토글 설정 ..................................................................................................................... 493

스크립트 작성 ............................................................................................................. 495

20.6 Slider ....................................................................................................................... 499

슬라이더(Slider)의 구조 ........................................................................................... 500

슬라이더 작업 ............................................................................................................ 504

스크립트 작성 ............................................................................................................. 504

스크립트 작성 ............................................................................................................. 507

20.7 Input ......................................................................................................................... 510

스크립트 작성 .............................................................................................................. 515

19플레이어프렙스

20Unity UI

목차

XIV

책2.indb 14 2016-02-18 오후 6:37:42

Page 14: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

20.8 ScrollRect .............................................................................................................. 519

20.9 Mask ........................................................................................................................ 530

20.10 ScrollBar .............................................................................................................. 533

스크립트 작성 ............................................................................................................. 535

20.11 ScrollView ............................................................................................................ 539

21.1 Unity & Model ....................................................................................................... 549

21.2 Model Use .............................................................................................................. 550

모델에 머티리얼 적용하기 ...................................................................................... 556

21.3 Material Change ................................................................................................. 559

스크립트 작성 ............................................................................................................. 560

스크립트 작성 ............................................................................................................. 563

21.4 Dynamic Change ............................................................................................... 566

스크립트 작성 ............................................................................................................. 569

21.5 ResourcesLoad ................................................................................................... 576

리소스 폴더 ................................................................................................................. 577

스크립트 작성 ............................................................................................................. 578

22.1 Animation ............................................................................................................... 586

22.2 Legacy Animation ............................................................................................. 587

스크립트 작성 ............................................................................................................. 594

스크립트 작성 ............................................................................................................. 604

21모델링

22애니메이션(1)

XV

책2.indb 15 2016-02-18 오후 6:37:42

Page 15: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

22.3 Mecanim Animation .......................................................................................... 608

스크립트 작성 ............................................................................................................. 622

스크립트 작성 ............................................................................................................. 639

23.1 TitleScreen ............................................................................................................. 643

스크립트 작성 ............................................................................................................. 645

23.2 Keyframe Animation ......................................................................................... 647

스크립트 작성 ............................................................................................................. 658

스크립트 수정 ............................................................................................................. 667

24.1 Joystick ................................................................................................................... 671

조이스틱 추가 ............................................................................................................. 675

스크립트 작성 ............................................................................................................. 680

23애니메이션(2)

24조이스틱

목차

XVI

책2.indb 16 2016-02-18 오후 6:37:43

Page 16: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

기본 익히기

02CHAPTER

학습 목표

• 스냅 기능을 익힌다.

• 글로벌 좌표와 로컬 좌표를 이해한다.

• 부모 자식 관계를 이해한다.

2.1 Snap

2.2 Global vs. Local

2.3 Parent vs. Child

책2.indb 32 2016-02-18 오후 6:37:48

Page 17: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

2장. 기본 익히기 33

2.1 Snap

스냅(Snap) 기능은 객체를 화면에 배치할 때 미리 지정한 단위별로 이동 거리, 회전각, 비율을 변하게 해

원하는 위치에 쉽고 빠르게 배치할 수 있게 한다.

스냅 설정

스냅은 [Edit → Snap Settings] 메뉴에서 설정한다.

씬 뷰에 있는 오브젝트의 좌표가 왼쪽과 같았을 때 오브젝트를 선택하고 [Snap All Axes] 버튼을 선택하

면 오브젝트의 좌표가 오른쪽 그림과 같이 Snap settings에서 설정한 단위대로 현재 값에서 가장 가까운

값으로 변하는 모습을 확인할 수 있다.

책2.indb 33 2016-02-18 오후 6:37:48

Page 18: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

34 핵심 강좌! 유니티5

노트

0.12에서 0으로 값이 변하는 것이 0.12에서 1로 변하는 것보다 더 가까운 거리이므로 위와 같이 이동한다.

정점 스냅(Vertex Snap)

두 게임 오브젝트의 정점(Vertex)을 맞추는 기능이다.

일반적으로 게임 오브젝트를 클릭해 선택하면 왼쪽 그림과

같이 기즈모가 게임 오브젝트 가운데에 표시된다.

정점 스냅을 이용하기 위해 게임 오브젝트를 선택하고 키

보드의 V 키를 누른 채로 마우스를 게임 오브젝트 위에서

이동하면 기즈모의 가운데에 있던 RGB 색 큐브가 사라지

고 노란색 평면 네모가 생기면서 기즈모가 게임 오브젝트

의 정점에 스냅 된다.

책2.indb 34 2016-02-18 오후 6:37:48

Page 19: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

2장. 기본 익히기 35

스냅의 기준이 되는 정점을 선택하고 다른 게임 오브젝트

로 끌고 가면 두 게임 오브젝트의 정점이 서로 스냅 돼 연

결된다.

■ V 키는 이동이 끝날 때까지 계속 누르고 있어야 한다.

■ 기즈모의 가운데 있는 노란색 네모를 클릭해 이동시킨다.

표면 스냅(Surface Snap)

복잡한 지형에서 지형 위에 오브젝트를 배치할 때 주의하지 않으면 오브젝트가 지형에 파묻히거나 공중에

떠 있게 된다. 이럴 때 표면 스냅 기능을 이용하면 오브젝트를 표면에 정확하게 배치할 수 있다.

우리가 일반적으로 사용하는 표면 스냅은 피봇 아이콘의 상태가 Center일 때다(피봇 아이콘은 트랜스폼

툴 오른쪽에 있다).

■ 표면 스냅을 사용할 때 게임 오브젝트의 바닥이 물체의 표면에 스냅 된다.

■ 표면 스냅을 사용할 때 게임 오브젝트의 중심이 물체의 표면에 스냅 된다.

게임 오브젝트를 선택하고 Shift + Ctrl 키를 누르면 기즈모의 가운데가 큐브 모양에서 노란색 평면 네모

로 바뀌는데, 이 상태로 기즈모 가운데의 네모 부분을 드래그하면 게임 오브젝트가 물체의 표면에 스냅 되

어 미끄러지듯이 이동한다.

노트

이때 바닥이 되는 게임 오브젝트는 콜라이더가 있어야 한다(콜라이더는 뒤에서 배운다).

책2.indb 35 2016-02-18 오후 6:37:49

Page 20: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

36 핵심 강좌! 유니티5

실습 프로젝트 1

프로젝트명이 02.BasicEx인 프로젝트를 만든다.

1장에서 정한 규칙대로 프로젝트 뷰에 기본 폴더를 생성한다.

스냅 기능을 실습하기 위해 첫 번째 씬을 01-SnapScene으로 저장한다. 기능

을 다 만든 다음에 씬을 저장해도 되지만, 이렇게 먼저 씬을 저장하고 수시로 저

장하는 방법이 안전하다.

이제 씬의 기즈모 방향을 다음과 같이 설정한다. 1장에 있는 씬 뷰의 화면 이동/회전/줌에서 익힌 조작 방

법으로 씬을 돌리면 된다.

책2.indb 36 2016-02-18 오후 6:37:49

Page 21: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

2장. 기본 익히기 37

유니티에서는 왼손 좌표계를 사용하는데, 왼손 좌표계는 게임 오브젝트의 등(뒷면)이 보이는 좌표계다.

즉, 게임 오브젝트가 전진하면 Z축의 값이 커지면서 화면 안쪽으로 전진하는 좌표계다. 이제 기즈모의 방

향과 좌표계의 방향이 맞춰졌다.

[왼손 좌표계] [오른손 좌표계]

두 좌표계 모두 엄지(X축), 검지(Y축)는 같은 방향인데 중지(Z축)의 방향이 서로 반대쪽을 가리키는 것

에 주의해 구분하면 된다. 왼손의 중지 방향은 나한테는 멀어지는 쪽을 가리키고 있고, 오른손의 중지 방

향은 내 쪽을 향하고 있다. 따라서 Z축의 값이 커질 때, 왼손 좌표계는 게임 오브젝트가 전진하면서 화면

에서 멀어지고 작아지지만, 오른손 좌표계는 게임 오브젝트가 전진하면서 화면에서 가까워지고 커진다.

노트

유니티가 왼손 좌표계를 사용한다는 것이 중요한 게 아니다. 유니티에서는 Z축의 양수의 값이 앞쪽을 가리킨다는 게 중요하다.

책2.indb 37 2016-02-18 오후 6:37:49

Page 22: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

38 핵심 강좌! 유니티5

이제 게임 오브젝트들을 화면에 배치해보자. 유니티에서 기본으로 제공하는 3D 게임 오브젝트가 있는데

앞으로 예제에서 자주 사용할 게임 오브젝트는 다음과 같다.

다음과 같이 메뉴를 선택해 씬 뷰에 플레인 게임 오브젝트를 추가한다. 플레인(Plane)은 평평한 바닥이다.

메뉴: GameObject → 3D Object → Plane

씬 뷰에 게임 오브젝트를 추가하면 여러분이 보고 있는 방향과 좌표를 기준으로 게임 오브젝트가 추가된

다. 그런데 이 좌표가 정확히 어디인지는 알 수 없다. 이 말은 3D 공간의 어떤 곳에라도 임의로 게임 오브

젝트가 추가될 수 있다는 뜻이다.

플레인(Plane)

큐브(Cube)

스피어(Sphere)

실린더(Cylinder)

캡슐(Capsule)

책2.indb 38 2016-02-18 오후 6:37:49

Page 23: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

2장. 기본 익히기 39

그러므로 다음과 같이 기본값으로 설정되게 해보자. 인스펙터 뷰에서 트랜스폼 컴포넌트의 오른쪽에 있는

톱니바퀴 모양의 메뉴를 선택하면 팝업 메뉴가 나오는데, 팝업 메뉴 중에서 [Reset]을 선택한다.

인스펙터 뷰에서 추가된 게임 오브젝트의 트랜스폼 컴포넌트를 살펴보면 좌표, 방향, 크기가 다음과 같이

초기화된 모습을 볼 수 있다.

모든 게임 오브젝트를 추가할 때마다 [Reset] 과정을 거친 다음에 원하는 곳으로 옮기는 게 좋다.

노트

씬 뷰에서 보이는 게임 오브젝트가 우리 눈에는 정상적인 곳에 위치하는 것처럼 보일지라도 실제로는 아닐 수 있다. 3D 공간의

작업을 2D 공간에서 하고 있어서 착시 현상에 따라 많은 오차와 착각이 생길 수 있다. 그러므로 이 [Reset] 과정을 거쳐 정확한

위치를 잡는 게 중요하다.

이번에는 다음과 같이 메뉴를 선택해 씬 뷰에 게임 오브젝트를 추가한다.

메뉴: GameObject → 3D Object → Cube

책2.indb 39 2016-02-18 오후 6:37:50

Page 24: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

40 핵심 강좌! 유니티5

추가한 게임 오브젝트의 트랜스폼을 리셋하고 게임 오브젝트의 기즈모를 이용해 위치를 조금 변경한다.

다음과 같이 메뉴를 선택해 씬 뷰에 게임 오브젝트를 하나 더 추가한다.

메뉴: GameObject → 3D Object → Cube

하이어라키 뷰에 표시되는 게임 오브젝트의 이름은 변수처럼 사용되므로 중복된 이름은 허용되지 않는다.

그래서 같은 게임 오브젝트를 추가했지만, 다음과 같이 게임 오브젝트의 이름이 서로 중복되지 않는 모습

을 볼 수 있다.

추가한 게임 오브젝트의 트랜스폼을 리셋하고 게임 오브젝트의 기즈모를 이용해 위치를 조금 변경한다.

왼쪽으로 드래그

위쪽으로 드래그

책2.indb 40 2016-02-18 오후 6:37:50

Page 25: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

2장. 기본 익히기 41

실습

•표면 스냅을 이용해 Cube를 Plane의 표면에 스냅시킨다.

•정점 스냅을 이용해 Cube와 Cube (1)을 정점으로 스냅시킨다.

2.2 Global vs. Local

앞서 왼손 좌표계와 오른손 좌표계에 대해 알아봤다. 그런데 유니티로 게임을 만들려면 또 다른 좌표계인

글로벌 좌표계와 로컬 좌표계를 알아야 한다.

책2.indb 41 2016-02-18 오후 6:37:50

Page 26: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

42 핵심 강좌! 유니티5

글로벌 좌표

글로벌 좌표는 게임 화면을 기준으로 하는 절대 좌표다. 게임 오브젝트의 방향을 글로벌 좌표로 표시할 때

는 트랜스폼 툴 오른쪽에 있는 토글 버튼을 Global로 설정한다. 게임 오브젝트의 기즈모는 게임 오브젝트

가 바라보는 방향과는 상관없이 씬 기즈모와 같은 방향으로 표시된다.

로컬 좌표

트랜스폼 툴 오른쪽에 있는 토글 버튼을 Local로 설정하면 기즈모는 게임 오브젝트의 로컬 좌표로 표시된

다. 이때 로컬 좌표는 게임 오브젝트를 기준으로 한 좌표다. 따라서 게임 오브젝트가 바라보는 방향이 z축

이 된다. 유니티는 게임 오브젝트의 이동 및 회전에 대해 로컬 좌표를 사용한다.

책2.indb 42 2016-02-18 오후 6:37:50

Page 27: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

2장. 기본 익히기 43

실습 프로젝트 2

실습을 위해 02.BasicEx 프로젝트에 두 번째 씬을 추가하고 [02-GlobalLocal]로 저장한다.

메뉴: File → New Scene → [02-GlobalLocal]로 저장

하나의 플레인과 두 개의 큐브를 추가하고 다음과 같이 배치한다.

결과적으로 첫 번째 씬의 Cube (1)을 x축으로 회전시키고 다시 Cube와 정점 스냅으로 연결한 것과 같

은 모습이다.

실습

•Cube (1)의 글로벌 좌표를 확인한다.

•Cube (1)의 로컬 좌표를 확인한다.

책2.indb 43 2016-02-18 오후 6:37:50

Page 28: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

44 핵심 강좌! 유니티5

2.3 Parent vs. Child

게임 오브젝트 사이에는 부모와 자식이라는 관계가 존재한다. 부모-자식 관계를 설정하면 부모가 움직이

거나 회전할 때 자식도 부모를 따라 같이 움직이거나 회전하게 된다.

예를 들면, 지구 안에 있는 나는 지구의 자식이고 지구는 나의 부모인 관계와 같다. 지구가 태양을 공전하

거나 자전할 때 나도 지구와 같이 회전하고 이동하지만, 지구 안에서 나는 따로 이동하거나 회전할 수 있

다. 또 다른 예로 버스 안에 타고 있는 나는 버스의 자식이고 버스는 나의 부모인 관계다. 버스가 이동할 때

나도 같이 이동하지만, 버스 안에서 나는 별도로 이동하거나 회전할 수 있다.

책2.indb 44 2016-02-18 오후 6:37:50

Page 29: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

2장. 기본 익히기 45

이런 관계를 게임으로 옮겨서 생각해보면 다음과 같이 생각할 수 있다. 주인공 캐릭터가 칼을 휘두를 때 칼

은 주인공 캐릭터의 자식이고 주인공 캐릭터는 칼의 부모다. 주인공 캐릭터가 팔을 움직이면 칼은 별도의

동작을 주지 않아도 같이 이동한다.

실습 프로젝트 3

실습을 위해 02.BasicEx 프로젝트에 세 번째 씬을 추가하고 [03-ParentChild]로 저장한다. 두 번째 씬

과 똑같이 만들 것이므로 두 번째 씬을 복사해서 세 번째 씬을 만들어보겠다.

다음 그림과 같이 두 번째 씬이 아니라면 프로젝트 뷰에서 02-GolbalLocal 씬을 더블 클릭해 두 번째 씬

을 연다.

이 상태로 두 번째 씬을 복사해 세 번째 씬을 만들고 [03-ParentChild]로 저장한다.

메뉴: File → Save Scene as… → [03-ParentChild]로 저장

프로젝트 뷰에서 씬이 제대로 만들어졌는지 확인한다.

책2.indb 45 2016-02-18 오후 6:37:50

Page 30: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

46 핵심 강좌! 유니티5

다음과 같이 윈도 제목에서 현재 씬이 세 번째 씬인지 확인한다.

Cube (1)을 Cube의 자식으로 만들려면 다음 그림과 같이 Cube (1)을 클릭한 채로 드래그해서 Cube

에 드롭한다.

오른쪽 그림과 같이 하이어라키 뷰에서 계층 구조가 만들어지면 Cube (1)은 Cube의 자식이 된 것이다.

이때 계층 구조와는 상관없이 씬 뷰의 모습은 변함이 없다.

실습

•Cube를 이동해 Cube를 이동했을 때 자식인 Cube (1)이 같이 이동하는지 확인한다.

•Cube (1)을 이동해 부모인 Cube와 상관없이 Cube (1)이 이동하는지 확인한다.

책2.indb 46 2016-02-18 오후 6:37:51

Page 31: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

2장. 기본 익히기 47

Cube 이동

Cube(1) 이동

책2.indb 47 2016-02-18 오후 6:37:51

Page 32: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

재질

03CHAPTER

학습 목표

• 재질에 색과 텍스쳐를 적용하는 법을 익힌다.

• 물리 재질을 적용하는 법을 익힌다.

3.1 재질

3.2 Material

3.3 Physics Material

책2.indb 48 2016-02-18 오후 6:37:51

Page 33: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

3장. 재질 49

3.1 재질

재질은 모든 3D 프로그램에서 사용하는 공통적인 개념으로 3D 모델의 외형을 설정하기 위한 수단이다.

기본적인 색상 설정부터 이미지 기반의 반사적 표현에 이르기까지 모든 것을 다룬다.

보이는 부분

■ 사과가 빨갛다. 여기서 빨간색은 사과의 보이는 재질이다.

■ 쇠구슬이 반짝인다. 여기서 반짝인다는 쇠구슬의 보이는 재질이다.

보이지 않는 부분

■ 고무공이 통통 튄다. 여기서 통통 튀는 것은 부딪혔을 때 나타나는 보이지 않는 재질이다. 이를 유니티에서는 물리 재

질이라고 하며, 3.3절에서 다룬다.

재질을 적용하는 방법

1.메쉬에 색을 칠하는 방법

2.메쉬에 서로 다른 텍스쳐를 적용하는 방법

3.셰이더(Shader) 적용

셰이더란 빛의 정보를 이용해 기본적인 명암을 주는 것 외에 빛의 투과, 빛의 반사 등을 이용해 다양하게

물체를 표현하는 방법을 뜻한다. 메쉬에 색을 칠하는 과정이나 메쉬에 텍스쳐를 적용하는 과정 이후에 추

가로 다음과 같이 다양한 셰이더를 적용함에 따라 같은 텍스쳐 재질이라도 서로 다른 느낌을 줄 수 있다.

책2.indb 49 2016-02-18 오후 6:37:51

Page 34: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

50 핵심 강좌! 유니티5

노트

유니티는 기존의 복잡하고 어려운 셰이더 프로그래밍을 모르더라도 이러한 셰이더를 쉽게 사용할 수 있도록 다양한 내장 셰이

더를 제공한다.

3.2 Material

유니티는 재질을 표현하기 위해서 머티리얼(Material)을 사용한다.

실습 프로젝트 1

프로젝트명이 03.MaterialEx인 프로젝트를 만든다.

책2.indb 50 2016-02-18 오후 6:37:51

Page 35: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드

3장. 재질 51

■ 1장에서 정한 규칙대로 프로젝트 뷰에서 기본 디렉터리를 생성한다.

■ 첫 번째 씬을 [01-Material]로 저장한다.

■ 씬의 기즈모 방향을 다음과 같이 설정해 씬 기즈모의 방향과 좌표계의 방향을 맞춘다.

앞으로도 프로젝트를 만들면 기본적으로 이 과정을 진행하면 된다.

책2.indb 51 2016-02-18 오후 6:37:51

Page 36: 핵심강좌! 유니티5: 예제로 배우는 Unity 게임 개발 필수 기술 완벽 가이드