CHAPTER 0 유니티의 특징과 개요 22 0.1 게임 통합 개발 환경 ‘유니티’ 22 정교한 에디터와 뛰어난 워크플로우 22 게임 개발의 민주화 23 캐릭터의 소재와 플러그인이 갖추어진 에셋 스토어 24 폭넓은 멀티 플랫폼 대응 24 0.2 유니티 5의 신기능 26 유니티 5.2의 신기능에 대해 29 유니티 5.3의 신기능에 대해 30 0.3 유니티를 이용할 때의 라이선스 32 Personal Edition과 Professional Edition의 차이 32 애드온 라이선스 33
CHAPTER 1 게임 개발을 위한 준비물 34 1.1 유니티 다운로드와 설치 35 1.2 라이선스의 활성화 39 1.3 예제 프로젝트로 놀아보기 42 1.4 실제 기기에 전송하는 환경 준비하기 45 모바일 앱 개발 환경 준비 45 Android SDK 경로 설정 46 1.5 예제 프로젝트의 빌드 48 Switch Platform에서 플랫폼 전환하기 48 빌드와 실제 기기로의 전송 49 정리 유니티 게임 개발 준비 51
CHAPTER 2 유니티 첫걸음 - 유니티의 화면 구성과 기본 조작 습득하기 52 2.1 씬과 에셋 53 씬 53 에셋 53 2.2 유니티 에디터의 기본 54 화면 구성 54 사용자 정의의 레이아웃 56 Project 뷰의 레이아웃 56 Game 뷰의 화면 비율 변경 58 2.3 3D 씬 조립하기 59 새로운 프로젝트의 작성 59 기본 씬의 내부 60 3D 오브젝트 배치하기 61 카메라의 조정 66 씬의 저장 68 2.4 색상과 질감 부여하기 69 셰이더와 머티리얼 69 물리 기반 셰이더 70 머티리얼을 설정하여 색상 바꾸기 71 머티리얼의 질감 변화시키기 73 2.5 글로벌 일루미네이션(GI) 체감하기 75 고전적인 라이팅 기법 76 GI에 의한 라이팅 기법 76 GI 확인의 사전 준비: 벽과 천장의 작성 78 GI 확인의 연습: 간접 조명의 반영 79 정리 유니티의 화면 구성과 기본 조작 습득하기 81
CHAPTER 3 게임 제작의 기본 - 물리 엔진과 충돌 마스터하기 82 3.1 공 만들기 84 씬의 초기화 84 Ball 오브젝트의 초기화 85 Rigidbody 추가 86 머티리얼의 설정 88 조명 설정 91 Point Light와 부모-자식 관계 설정 92 3.2 스테이지 만들기 96 스테이지 작성 준비 96 주위의 벽 만들기 97 보이지 않는 천장 만들기 98 장애물 설치 100 카메라 조정 101 3.3 중력 조작 102 물리 엔진의 설정과 조작 102 Script 작성 103 키보드에서의 조작 106 스크립트의 이용과 파라미터의 설정 108 가속도 센서 이용 109 실제 기기 테스트 111 3.4 물리적 특성 설정 114 무게 설정 114 Physic Material 적용 115 3.5 홀(구멍) 만들기 117 홀 설치 117 태그 설정 120 Hole 스크립트 작성 121 3.6 클리어 판정 124 접촉 감지 124 전체 홀의 상태 감시 125 3.7 글로벌 일루미네이션에 의한 그래픽 최종 조정 129 정리 좀 더 재미있게 하려면 131
CHAPTER 4 게임 오브젝트의 제어 - 프리팹과 효과 높이기 132 4.1 에셋 임포트 134 4.2 스테이지 작성 137 스테이지 조립 137 텍스처 이용 139 3D 모델 이용 142 로고 배치 143 카메라와 라이트 조정 145 밀대 만들기 146 4.3 사탕 프리팹 152 프리팹이란? 152 둥근 사탕의 프리팹 만들기 152 네모난 사탕 프리팹 만들기 155 사탕의 초기 배치 158 4.4 오브젝트 동적 생성과 삭제 160 Shooter 구현 160 Shooter 개선 163 Candy 오브젝트 삭제 167 사탕의 투척 기회 수 소비하기 170 4.5 게임 컨트롤 170 사탕의 투척 기회 수 부여 174 사탕의 투척 기회 수 자동 회복 176 연속 투입 제한 179 4.6 효과 표시 183 파티클 시스템의 생성 183 파티클 시스템의 기본 설정 184 파티클 머티리얼의 설정 186 임의성 부여 188 Lifetime에 따른 변화 191 효과 자동 삭제 193 효과 작성 194 4.7 사운드 재생 197 효과 재생 197 임의의 타이밍에서의 재생 199 BGM 재생 202 Audio Mixer 이용 204 정리 좀 더 재미있게 하려면 209
CHAPTER 5 3D 게임 만들기 - 캐릭터와 GUI 컨트롤하기 210 5.1 에셋의 임포트와 씬 초기화 212 5.2 캐릭터 애니메이션 도입 투어 213 본(bone)과 Skinned Mesh Renderer 213 애니메이션 클립과 키 프레임 214 Animator와 트랜지션 216 5.3 네지코 작성 219 CharacterController 설정 219 CharacterController 이용 220 프로젝터에 의한 그림자 224 Ignore 레이어 설정 226 카메라 워크 227 주행 자동화 229 5.4 스테이지 생성 234 자동 생성 방침 234 초기 스테이지 설치 234 스테이지 자동 생성 235 안개 이용 240 5.5 적의 설정과 패널티 구현 242 적 오브젝트의 설정과 구성 242 적의 임시 배치 243 데미지 처리 245 5.6 스테이지 디자인 250 적 생성의 문제점과 해결 방침 250 적 출현 장소의 지정 251 스테이지 편집 252 5.7 uGUI를 사용하여 게임 정보 표시하기 257 Canvas의 작성과 초기 설정 257 Text 오브젝트 이용 259 여러 화면 비율과 해상도 지원 260 라이프 아이콘 표시 263 패널 이용 264 UI 갱신 268 5.8 버튼 이용 271 버튼 생성 271 클릭 이벤트 설정 274 버튼의 이미지화 276 5.9 스테이지 생성 279 씬의 생성과 초기 설정 279 GUI 설정 281 씬의 전환 284 하이 스코어의 기록 287 정리 좀 더 재미있게 하려면 291
CHAPTER 6 2D 게임 만들기 - 스프라이트와 2D 물리 엔진 제대로 다루기 292 6.1 게임 작성 방침 294 6.2 2D 모드로의 변경과 초기 설정 295 2D 프로젝트 만들기 295 2D 모드와 3D 모드의 차이 295 2D 모드와 3D 모드의 변경 296 6.3 에셋의 임포트와 설정 298 에셋의 임포트 298 스프라이트의 임포트 설정 298 스프라이트의 패킹과 스프라이트 아틀라스 299 6.4 배경 오브젝트 작성 303 지면 작성 303 배경 작성과 표시 순서 설정 305 카메라 설정 308 배경 스크롤 309 6.5 캐릭터 작성 313 Animator 준비 313 스프라이트 애니메이션 작성 315 정지 애니메이션 추가 318 메카님 설정 318 6.6 캐릭터 제어 322 Rigidbody2D와 Circle Collider 2D 설정 322 캐릭터 컨트롤 324 캐릭터의 애니메이션 제어 326 사망 판정 329 6.7 블록 작성 332 Block 오브젝트 구성 332 Block 오브젝트의 작성과 설정 333 높이를 랜덤으로 생성 334 블록 설치 337 6.8 게임 전체의 컨트롤 339 캐릭터 조작 제어 339 GameController 만들기 341 클리어 판정과 스코어의 가산 345 GUI 표시 349 6.9 카메라 크래쉬 효과 355 정리 좀 더 재미있게 하려면 359
CHAPTER 7 2D 게임 출시 준비와 스토어에 등록하기 360 7.1 Player Settings 편집 361 Product Name 설정 361 Resolution and Presentation 설정 362 Icon 설정 362 스플래시 설정 365 Other Settings 설정 366 7.2 Android의 Keystore 만들기 369 Keystore 작성 순서 369 Keystore 이용 371 7.3 출시 빌드의 작성 372 빌드 372 제출과 업로드 372 정리 게임의 출시 준비와 스토어에 등록하기 375
APPENDIX A 유니티를 좀 더 잘 사용하기 위해 376 A.1 MonoDevelop의 대용 스크립트 에디터 376 사용할 에디터 변경 376 Xamarin Studio 도입 377 Visual Studio Code 도입 380 A.2 에셋 스토어 이용 384 에셋 스토어의 기동과 이용 방법 384 추천하는 에셋 386 A.3 앱으로 광고 수입 얻기 391 Unity Ads 등록 391 신규 게임 등록 392 Unity Ads의 내장 394