목차 일부
머리말 ... xvii
CHAPTER 01 Unity3D 시작하기 ... 1
1.1 유니티3D 소개 ... 2
1.2 유니티의 특징 ... 4
1.2.1. 멀티 플랫폼 지원 ... 4
1.2.2. 통합 개발 환경 제공 ... 5
1.2.3. 당야한 3D 모델링 툴 지원 ... 6
1.2.4. 물리 기반 ...
더보기
목차 전체
머리말 ... xvii
CHAPTER 01 Unity3D 시작하기 ... 1
1.1 유니티3D 소개 ... 2
1.2 유니티의 특징 ... 4
1.2.1. 멀티 플랫폼 지원 ... 4
1.2.2. 통합 개발 환경 제공 ... 5
1.2.3. 당야한 3D 모델링 툴 지원 ... 6
1.2.4. 물리 기반 엔진 ... 7
1.2.5. 자바스크립트, C, Boo 스크립트 사용 ... 8
1.2.6. 체계적인 레퍼런스 제공 ... 9
1.3 유니티 설치 ... 10
1.3.1. 유니티3D 다운로드 ... 10
1.3.2. 유니티 사용자 등록 ... 13
1.3.3. 유니티의 실행 ... 13
CHAPTER 02 유니티의 기초 Ⅰ ... 15
2.1 유니티의 인터페이스 ... 16
2.1.1. 유니티의 초기 화면 ... 16
2.1.2. 새 프로젝트 시작 ... 18
2.1.3. 게임 오브젝트 추가 ... 19
2.1.4. 디자인 탭의 기능 ... 20
2.1.5. Hierarchy 탭 ... 27
2.1.6. Project 탭 ... 27
2.1.7. 유니티 프로젝트의 폴더 구조 ... 28
2.1.8. Inspector 탭 ... 30
2.1.9. 게임 실행 탭 ... 32
2.2 유니티의 단축키 ... 35
2.3 공간 좌표와 벡터 ... 37
2.3.1. 평면 벡터와 공간 벡터 ... 37
2.3.2. 오른손 좌표계와 왼손 좌표계 ... 38
CHAPTER 03 유니티의 기초 Ⅱ ... 41
3.1 오브젝트 움직이기 ... 42
3.1.1. 오브젝트의 속성 설정 ... 42
3.1.2. 조명 설치 ... 43
3.1.3. Rigidbody 컴포넌트 추가 ... 44
3.1.4. 오브젝트의 탄성계수 ... 46
3.2 오브젝트에 색깔 넣기 ... 48
3.2.1. 머티리얼 만들기 ... 48
3.2.2. 머티리얼 적용하기 ... 49
3.2.3. 텍스처 추가 ... 50
3.3 사운드 출력(Audio Source) ... 52
3.3.1. Audio Source 연결 ... 52
3.3.2. Audio Clip 연주 스크립트 작성 ... 54
3.4 Prefab의 활용 ... 57
3.4.1. Prefab은 무엇인가? ... 57
3.4.2. Prefab 만들기 ... 58
3.5 Scene 저장 ... 59
3.6 오브젝트 움직이기 (2) ... 59
3.6.1. 화면 디자인 ... 59
3.6.2. 오브젝트의 발사(AddForce) ... 60
3.6.3. 방향과 공간 벡터 ... 61
3.6.4. 스크립트 작성 ... 63
3.6.5. 키 입력으로 발사(GetButtonDown) ... 66
3.6.6. 유니티의 입력 시스템 ... 66
3.6.7. 오브젝트의 이동과 회전 ... 69
3.6.8. 키 입력과 방향 ... 70
3.6.9. 오브젝트의 속도 설정 ... 71
3.6.10. 스크립트 작성 ... 72
3.6.11. 오브젝트 회전(Rotate) ... 73
CHAPTER 04 게임 제작의 기초 ... 77
4.1 탱크 만들기 ... 78
4.1.1. 계층적인 오브젝트 ... 78
4.1.2. 탱크의 결합 ... 79
4.2 탱크 제어 ... 80
4.2.1. 탱크 움직이기 ... 80
4.2.2. 포탑 회전 키 추가 ... 82
4.2.3. 포탑 회전 ... 83
4.2.4. 포탄 발사(Instantiate) ... 84
4.2.5. Spawn Point 설정 ... 87
4.2.6. 오일러 각도와 쿼터니언 ... 89
4.3 카메라 워킹 ... 90
4.4 목표물 맞추기 ... 92
4.4.1. Trigger 설정 ... 93
4.4.2. 충돌의 판정(OnTriggerEnter) ... 94
4.5 사운드 출력(PlayClipAtPoint) ... 95
4.6 장애물의 Tag 설정 ... 96
4.7 파티클 다루기 ... 98
4.7.1. 폭파 불꽃 만들기 ... 98
4.7.2. 포구 앞의 화염 만들기 ... 102
4.7.3. 유니티의 내장 파티클 ... 105
4.8 적군의 등장 ... 108
4.8.1. 적군 탱크 만들기 ... 108
4.8.2. 목표물 주시(LookAt) ... 109
4.8.3. 목표물 탐색(Raycast) ... 111
4.8.4. 적군의 발포 ... 112
4.8.5. Local 좌표와 Global 좌표 ... 113
4.8.6. 탐지 정보 분석 ... 115
4.8.7. Debug 출력 ... 116
4.8.8. 사격 속도 제한 ... 117
4.8.9. 적 포탄의 회전 방향 설정 ... 118
4.8.10. 적군 탱크 움직이기(RotateAround) ... 119
4.8.11. 적군 탱크와 포격전 ... 121
4.9 점수 표시 ... 122
4.9.1. OnGUI() ... 122
4.9.2. 점수 계산 ... 124
4.10 승리 화면과 패배 화면 ... 126
4.10.1. 승리 화면 만들기 ... 126
4.10.2. Scene 등록 ... 128
4.10.3. 패배 화면 만들기 ... 128
4.10.4. 게임 타이틀 화면 만들기 ... 129
4.10.5. 게임 마무리 ... 131
4.11 스테이지 초기화 ... 132
4.12 Skybox 사용 ... 132
CHAPTER 05 Space Shooter ... 135
5.1 게임의 개요 ... 136
5.1.1. 게임의 분석 ... 136
5.1.2. 준비물 ... 137
5.2 오브젝트 만들기 ... 139
5.2.1. 카메라 설정과 배경 화면 ... 139
5.2.2. 애셋 스토어에서 다운받기 ... 141
5.2.3. 우주선 만들기 ... 144
5.2.4. 레이저 만들기 ... 148
5.2.5. 운석 만들기 ... 148
5.2.6. 보너스 아이템 만들기 ... 150
5.2.7. 폭파 불꽃 만들기 ... 152
5.2.8. 프리팹 만들기 ... 153
5.3 오브젝트 움직이기 ... 153
5.3.1. 게임 화면의 크기 구하기 ... 153
5.3.2. Bonus 아이템 움직이기 ... 153
5.3.3. Laser 움직이기 ... 154
5.3.4. Asteroid 움직이기 ... 155
5.3.5. Gunship 움직이기 ... 159
5.4 배경 화면 스크롤 ... 163
5.4.1. 우주 이미지 텍스처 ... 164
5.4.2. 배경의 텍스처 매핑 ... 165
5.4.3. 배경의 원경과 근경 ... 165
5.5 게임 매니저 ... 167
5.5.1. FSM(유한 상태 기계) ... 168
5.5.2. GUI Text ... 169
5.5.3. 3D Text ... 170
5.5.4. 게임 매니저 만들기 ... 171
5.6 충돌의 판정 ... 174
5.6.1. 레이저 충돌 판정 ... 174
5.6.2. SendMessage() ... 176
5.6.3. 우주선의 충돌 판정 ... 177
5.6.4. 우주선의 무적 상태 ... 178
5.6.5. yield문 ... 179
5.6.6. 우주선 등장 ... 180
5.6.7. 스테이지 만들기 ... 181
5.6.8. 우주선과 운석의 충돌 처리 ... 183
5.6.9. 레이저와 운석의 충돌 처리 ... 184
5.7 스테이지 클리어 ... 186
5.8 Bonus 아이템 처리 ... 189
5.9 게임 시작 화면 만들기 ... 190
5.9.1. 시작 화면 디자인 ... 190
5.9.2. 시작 화면 만들기 ... 192
5.9.3. 게임 마무리 ... 194
CHAPTER 06 Arkanoi ... 197
6.1 게임의 개요 ... 198
6.1.1. 게임의 요구사항 ... 198
6.1.2. 준비물 ... 199
6.1.3. 스테이지의 구성 ... 200
6.2 오브젝트 만들기 ... 201
6.2.1. 바닥과 조명 설치 ... 201
6.2.2. 블록 만들기 ... 202
6.2.3. 패들 만들기 ... 204
6.2.4. 공 만들기 ... 205
6.2.5. 보너스 아이템 만들기 ... 206
6.2.6. 폭파 불꽃 만들기 ... 207
6.2.7. 벽 만들기 ... 208
6.2.8. 레이저 만들기 ... 209
6.2.9. 카메라 설정 ... 209
6.3 블록의 배치 ... 210
6.3.1. 맵의 개념 ... 211
6.3.2. 맵 만들기 ... 212
6.3.3. 맵 표시하기 ... 215
6.4 공의 이동과 반사 ... 217
6.4.1. 공의 방향과 속도 ... 217
6.4.2. 공의 반사 ... 218
6.4.3. 충돌 결과와 Bounds ... 220
6.4.4. 공의 난반사 ... 222
6.4.5. 충돌의 판정과 처리 ... 222
6.5 오브젝트 움직이기 ... 223
6.5.1. 게임 매니저 ... 223
6.5.2. 보너스 아이템의 이동 ... 227
6.5.3. 공의 이동 ... 228
6.5.4. 레이저의 이동 ... 230
6.5.5. 스피드 볼의 이동 ... 231
6.5.6. 패들의 이동 ... 233
6.5.7. 블록 ... 235
6.6 게임 매니저 ... 238
6.6.1. 순환 루프 ... 238
6.6.2. 득점 처리 ... 239
6.6.3. 패들과 공의 리셋 ... 242
6.6.4. 보너스 아이템 처리 ... 244
6.6.5. 스코어와 메시지 표시 ... 247
6.6.6. 공이 블록을 통과하는 경우 ... 250
6.7 타이틀 화면 ... 253
CHAPTER 07 기억력 테스트 ... 255
7.1 게임의 개요 ... 256
7.1.1. 게임의 요구사항 ... 256
7.1.2. 카드 회전 애니메이션 ... 257
7.2 카드 애니메이션 ... 258
7.2.1. 애니메이션 파일 만들기 ... 258
7.2.2. 애니메이션 키프레임 설정 ... 259
7.2.3. 카드의 앞면과 뒷면 ... 263
7.2.4. 애니메이션 이벤트 ... 264
7.2.5. 프로젝트에 필요한 애니메이션 작성 ... 267
7.3 게임 제작 준비물 ... 268
7.3.1. 팡파르 파티클 ... 268
7.3.2. 폭파 불꽃 파티클 ... 271
7.3.3. 카드 텍스처 ... 272
7.3.4. 버튼 텍스처 ... 272
7.3.5. 프로그레스바 텍스처 ... 273
7.3.6. 사운드 파일 ... 274
7.3.7. 스코어 표시 ... 274
7.4 게임의 기본 알고리즘 ... 275
7.4.1. 카드 짝 찾기 ... 275
7.4.2. 카드 섞기와 앞뒷면 판정 ... 276
7.5 프로그램 작성 ... 278
7.5.1. 게임 매니저 만들기 ... 278
7.5.2. 카드 처리 스크립트 작성 ... 282
7.5.3. 스테이지 만들기 ... 284
7.5.4. 카드 판정 ... 287
7.5.5. 점수 표시 ... 291
7.5.6. 스테이지 이동과 도전 실패 ... 293
7.5.7. 게임 타이틀 만들기 ... 296
CHAPTER 08 슬라이딩 퍼즐 ... 299
8.1 게임의 개요 ... 300
8.1.1. 게임의 요구사항 ... 301
8.1.2. View 디자인 ... 301
8.2 게임의 기본 설정 ... 303
8.2.1. 타일과 프레임 만들기 ... 303
8.2.2. 타일 표시하기 ... 305
8.2.3. 게임 제작에 필요한 준비물 ... 307
8.2.4. 머티리얼의 Tiling과 Offset ... 308
8.2.5. 타일의 사진 매핑 ... 310
8.3 게임의 기본 알고리즘 ... 312
8.3.1. 게임의 프로세스 ... 312
8.3.2. 타일 섞기와 치환 ... 313
8.3.3. 클릭한 타일 찾기 ... 317
8.3.4. 타일의 이동 방향과 이동할 타일 찾기 ... 318
8.3.5. 타일의 이동 ... 323
8.3.6. 배열 정리 ... 324
8.3.7. 프로그램의 전체 구조 ... 335
8.4 GUI Skin ... 334
8.4.1. 새 글꼴 추가 ... 336
8.4.2. GUI Skin 추가 ... 336
8.4.3. 스코어 표시 ... 339
8.4.4. 버튼의 속성 설정 ... 341
8.4.5. Stage Clear와 Stage 이동 ... 343
8.5 게임의 Save와 Load ... 344
8.5.1. 게임의 Save ... 344
8.5.2. 게임 Load ... 344
8.6 게임 시작 화면 ... 348
8.6.1. 배경에 눈 날리기 ... 348
8.6.2. 게임 시작 화면 ... 350
8.6.3. Options 화면 ... 353
8.6.4. Options 화면 만들기 ... 357
8.6.5. GUI Skin 설정 ... 360
8.6.6. 사진의 가로×세로 비율 설정 ... 361
8.6.7. About 화면 ... 362
CHAPTER 09 운석 피하기 ... 367
9.1 게임의 개요 ... 368
9.1.1. 시놉시스 ... 368
9.1.2. 게임의 요구사항 ... 369
9.1.3. 게임에 필요한 요소 ... 371
9.1.4. 3D 오브젝트 제작 시 유의사항 ... 371
9.2 오브젝트 만들기 ... 372
9.2.1. 카메라와 조명 설치 ... 372
9.2.2. 우주선 만들기 ... 373
9.2.3. 우주 기뢰 만들기 ... 375
9.2.4. 해적선 만들기 ... 376
9.2.5. 운석 만들기 ... 378
9.2.6. 총알 만들기 ... 382
9.2.7. 해적선 미사일 만들기 ... 383
9.2.8. Bonus 아이템 만들기 ... 384
9.2.9. 폭파 불꽃 만들기 ... 385
9.2.10. 우주 정거장 만들기 ... 386
9.2.11. 배경 행성 만들기 ... 387
9.2.12. 게임 배경 만들기 ... 388
9.2.13. 미니맵에 사용할 이미지 ... 390
9.2.14. 오브젝트의 화면 배치 ... 391
9.3 오브젝트 움직이기 ... 392
9.3.1. 게임 매니저 ... 392
9.3.2. 우주선 움직이기 ... 397
9.3.3. 배경 화면 스크롤 ... 401
9.3.4. 우주 근경 이동 ... 404
9.3.5. Bonus 아이템의 이동 ... 408
9.3.6. 총알의 이동 ... 408
9.3.7. 적군 총알 이동 ... 410
9.3.8. 남은 거리 계산 ... 411
9.3.9. 게임 난이도 설정 ... 413
9.3.10. 운석과 기뢰 만들기 ... 414
9.3.11. 운성의 이동 ... 417
9.3.12. 우주 기뢰의 이동 ... 420
9.3.13. 폭파 불꽃의 이동 ... 422
9.3.14. 해적선의 이동 ... 422
9.4 충돌의 판정과 처리 ... 427
9.4.1. 충돌의 판정 ... 427
9.4.2. 우주선의 파괴와 무적 상태 ... 428
9.4.3. 운석의 충돌 처리 ... 430
9.4.4. 기뢰의 충돌 처리 ... 433
9.4.5. Bonus 아이템의 충돌 처리 ... 434
9.5 Stage 처리와 Score 표시 ... 438
9.5.1. Font와 GUI Skin 설치 ... 438
9.5.2. Score 표시 ... 438
9.5.3. Stage 만들기 ... 441
9.5.4. 미니맵 만들기 ... 444
9.5.5. Options 메뉴 ... 448
9.5.6. Stage Clear ... 451
9.5.7. GameOver ... 454
9.6 해적선과의 전투 ... 454
9.6.1. 총알과 해적선의 충돌 판정 ... 454
9.6.2. 해적선의 파괴 ... 456
9.6.3. 전투 모드로 전환 ... 457
9.6.4. 운행 모드로 전환 ... 458
9.7 게임 시작 화면 ... 460
9.7.1. 게임 시작 이미지 만들기 ... 460
9.7.2. 메뉴 화면 만들기 ... 461
9.7.3. Box에 배경 넣기 ... 464
9.7.4. Options 메뉴 만들기 ... 465
9.7.5. About 화면 ... 467
9.7.6. 도움말 화면 ... 469
9.7.7. 프로젝트 마무리 ... 470
CHAPTER 10 게임을 안드로이드용으로 변환 ... 471
10.1 안드로이드 개발 환경 구축 ... 472
10.1.1. Java SDK 설치 ... 472
10.1.2. 안드로이드 SDK 설치 ... 475
10.1.3. 이클립스 설치 ... 478
10.1.4. 이클립스에 안드로이드 API 추가 ... 480
10.1.5. 이클립스에 안드로이드 SDK 연결 ... 482
10.1.6. AVD 만들기 ... 483
10.1.7. 유니티의 안드로이드 SDK ... 486
10.2 안드로이드용 기억력 테스트 ... 486
10.2.1. 안드로이드 폴랫폼 설정 ... 487
10.2.2. 단말기의 Touch 체크 ... 491
10.2.3. PC에서 게임 실행 ... 493
10.2.4. 안드로이드 단말기 설정 ... 494
10.2.5. 안드로이드 단말기에서 실행 ... 496
10.2.6. AVD에서 게임 실행 ... 496
10.2.7. Font 추가 ... 498
10.3 안드로이드용 슬라이딩 퍼즐 ... 500
10.3.1. 안드로이드 플랫폼 설정 ... 501
10.3.2. 카메라 조정과 GUI 수정 ... 502
10.3.3. Touch Event 처리 ... 505
10.3.4. 에러 수정 ... 507
10.3.5. 타이틀 화면의 수정 ... 507
10.3.6. About 화면 수정 ... 510
10.3.7. Options 화면 수정 ... 511
10.4 안드로이드용 Space Shooter ... 516
10.4.1. 가상의 조이스틱 ... 516
10.4.2. 유니티의 화면 구성 ... 518
10.4.3. GUI Texture ... 519
10.4.4. GUI Texture 추가 ... 519
10.4.5. 버튼 만들기 ... 520
10.4.6. 단말기의 Touch 식별 ... 523
10.4.7. 조건부 컴파일 ... 527
10.4.8. GUI Skin과 글꼴 추가 ... 530
10.4.9. Back 키와 Menu 키 처리 ... 532
10.5 안드로이드용 운석 피하기 ... 534
10.5.1. 안드로이드 플랫폼 설정 ... 534
10.5.2. 조이스틱의 기능 추가 ... 534
10.5.3. 기타 설정 ... 540
10.6 안드로이드용 Arkanoid ... 546
10.6.1. 안드로이드 플랫폼 설정 ... 547
10.6.2. 버튼 만들기 ... 547
10.6.3. 게임에서 타이틀 화면으로 복귀 ... 552
10.6.4. Yes/No 버튼 만들기 ... 552
10.6.5. 타이틀 화면의 버튼과 Loading 메시지 ... 555
CHAPTER 11 터레인 사용하기 ... 557
11.1 지형 둘러보기 ... 558
11.1.1. 데모 프로젝트 ... 558
11.1.2. Island Demo 둘러보기 ... 560
11.2 지형 만들기 ... 562
11.2.1. Terrain 애셋 다운로드 ... 562
11.2.2. 프로젝트에 Terrain과 조명 추가 ... 563
11.2.3. 터레인 디자인 툴 사용법 ... 564
11.2.4. 지형에 기본 매핑하기 ... 565
11.2.5. 산맥 만들기 ... 569
11.2.6. 산맥의 텍스처 ... 572
11.2.7. 나무 심기 ... 573
11.2.8. 맵 둘러보기 ... 575
11.2.9. Skybox와 렌즈 플레어 추가 ... 576
11.2.10. 연못과 분화구의 화염 만들기 ... 577
11.2.11. 풀 심기 ... 579
11.2.12. 관목과 바위 설치 ... 581
11.3 Terrain Toolkit으로 지형 만들기 ... 583
11.3.1. 터레인에 툴킷 연결 ... 583
11.3.2. 산 만들기 ... 585
11.3.3. 산의 풍화 작용 효과 ... 589
11.3.4. 텍스처 만들기 ... 594
찾아보기 ... 596
더보기 닫기