책 소개
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
유니티 5.x를 사용하여 게임을 만들고자 하는 초급과 중급 게임 개발자를 위한 책이다. 2D 트윈 스틱 슈터로 시작하여 클릭커, 무한 스크롤, 횡스크롤 플랫폼, 3D 일인칭 슈터까지 인기 있는 장르의 게임 프로젝트를 예제로 사용하여 개발에 필요한 다양한 부분을 다룬다. 장르에 상관 없이 본인의 개발 실력의 기본을 닦고자 하는 사람에게 유용하게 읽힐 책이다.
이 책에서 다루는 내용
■ 유니티의 내장 2D 툴을 사용한 트윈 스틱 슈터, 엔드리스 모바일 게임, 슈팅 갤러리 게임 개발
■ 클릭커 게임을 개발하면서 유니티 내장 GUI 시스템, 재활용이 가능한 메뉴 시스템, 게임 내장 레벨 에디터 개발
■ 높은 효율성으로 실사와 흡사한 모습의 게임 환경 구성
■ 터레인(Terrain)과 모듈화 작업 방식을 사용해 환경을 구성하는 팁과 노하우
■ 기존 코드를 본인의 게임에 맞게 수정하는 방법
■ 게임 세계 안에서 움직이고 플레이어에 반응해 움직이는 AI 제작
■ 인스톨러를 만들어 출시를 위한 게임을 포장하고 배포하는 방법
이 책의 대상 독자
이 책은 유니티 게임 개발 플랫폼에 대한 기본적인 지식을 갖춘 C# 개발자에게 최적화돼 있다. 유니티의 주요 기능들을 활용할 수 있는 실무적 이해를 바탕으로 흥미진진한 게임을 만들고 싶다면, 이 책 한 권에서 모든 해법을 찾을 수 있을 것이다.
이 책의 구성
1장. '2D 트윈 스틱 슈터'에서는 2D 다방향 슈터 게임을 제작하는 방법을 다룬다. 플레이어는 방향키를 사용해서 화면 속 우주선을 움직이고 마우스가 가리키는 방향으로 발사체를 쏜다. 생성된 적과 방해물은 플레이어를 향해 움직이고, 플레이어는 이를 피하거나 파괴해야 한다. 이 장은 유니티를 다루기 위해 필요한 여러 가지 개념들을 다시 환기시킴과 동시에 유니티에 내장된 2D 툴을 훑어보는 데 목적을 둔다.
2장. 'GUI 만들기'에서는 트윈 스틱 슈터 게임에 UI를 적용한다. 메인 메뉴, 멈춤 메뉴, 옵션 메뉴와 게임을 다시 시작할 수 있는 기능을 추가한다.
3장. 'GUI 파트 2: 클릭커 게임'에서는 클릭커 게임을 만들어보면서 우리가 알고 있는 GUI 관련 지식 이상의 것들을 배운다. 버튼을 만들고 애니메이션하는 방법, 액세서(get/set 기능)를 다루는 방법, 그리고 게임에서 사용할 간단한 샵(shop) 기능을 만들면서 스크롤뷰(Scrollview)와 마스크(Mask) 등의 UI 애셋을 짚어본다.
4장. '모바일 엔드리스 게임: 절차적 콘텐츠'에서는 인기 게임 <플래피>와 게임 플레이가 유사한 게임을 만들면서 실시간으로 콘텐츠를 만들어 끝없는 레벨을 생성하는 방법을 설명한다. 추가적으로 소팅 레이어(sorting layer)를 사용해 반복되는 백그라운드를 만드는 방법도 살펴본다.
5장. '슈팅 갤러리: 애니메이션과 트윈다루기'에서는 플레이어가 시간이 끝나기 전에 타깃들을 쏘아 맞추는 간단한 슈팅 게임을 만든다. 유니티에 내장된 애니메이션 기능이나 아이트윈(iTween)과 같은 트윈 라이브러리를 사용해서 애니메이션을 만드는 다양한 방법을 살펴보고, 마지막으로 PlayerPrefs를 사용해 최고 스코어를 갱신하는 법을 다룬다.
6장. '횡 스크롤 플랫폼 게임'에서는 횡 스크롤 플랫폼 게임을 만드는 방법을 다룬다. 2D 게임과 3D 게임을 만들 때 어떤 점이 비슷하고 다른지 살펴보고, 특히 물리에 관련된 부분에 초점을 맞춘다.
7장. '일인칭 슈터 파트 1: 야외 환경 만들기'에서는 야외 환경을 제작하는 환경 아티스트가 하는 일을 다루면서 메시(mesh) 배치를 살펴본다. 또한 초보 수준의 레벨 디자인 방법을 알아본다.
8장. '일인칭 슈터 파트 2: 실내 환경 만들기'에서는 환경 아티스트가 제작해준 애셋들을 가지고 실내 환경을 제작하며, 레벨 디자이너의 작업을 살펴본다.
9장. '일인칭 슈터 파트 3: 게임플레이와 AI 적용하기'에서는 적, 슈팅 행동 패턴, 게임플레이를 적용하는 방법을 배워 진정한 게임의 모습이 드러나게 한다. 또한 게임에서 Xbox 360 컨트롤러를 지원하는 방법을 알아본다.
10장. '게임 내장 레벨 에디터 만들기'에서는 이전 장에서 만든 횡 스크롤 플랫폼 게임은 물론, 향후 게임에 쓰일 수 있는 레벨 에디터 기능을 만들어 게임의 기능성을 높이는 방법을 살펴본다. 또한 IMGUI(Immediate Mode GUI System)를 사용해 코드에서 직접 GUI를 생성하는 기능을 알아본다.
11장. '후반 작업'에서는 유니티에서 게임을 내보내는 방법과 친구, 가족, 고객들에게 게임을 편리하게 전달하도록 설치 프로그램을 포함시키는 방법을 다룬다.
목차
목차
- 1장. 2D 트윈 스틱 슈터
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 프로젝트 설정하기
- 신 만들기
- 스크립팅의 소개
- 플레이어 움직임 만들기
- 슈팅 behavior
- 적 만들기
- 적 웨이브를 생성하는 GameController 만들기
- 적 파괴를 위한 파티클 시스템
- 사운드 이펙트와 음악 추가하기
- 점수, 스코어, 웨이브 숫자 만들기
- 게임 출시하기
- 요약
- 도전 과제
- 프로젝트 개요
- 2장. GUI 만들기
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 메인 메뉴 레벨 만들기
- 헤더 텍스트 오브젝트 만들기
- 메인 메뉴 버튼 만들기
- 게임 멈추기
- 게임 재시작하기
- 옵션 메뉴 만들기
- 요약
- 도전 과제
- 프로젝트 개요
- 3장. GUI 파트 2: 클릭커 게임
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 프로젝트 시작하기
- 클릭을 기록하고 표시하기
- 액세서 활용하기(get/set 함수)
- 툴 팁과 헤더 속성
- GameController의 기능 설명
- 샵 만들기
- ScrollView를 사용해 스크롤이 가능한 리스트 만들기
- 샵 열기/닫기
- 업그레이드 구매하기
- 이뉴머레이션 다루기
- Switch 명령문
- StoreItem 클래스 설명하기
- 아이템 설명 채워 넣기
- 요약
- 도전 과제
- 프로젝트 개요
- 4장. 무한의 모바일 게임: 절차적 콘텐츠
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 프로젝트 구성
- 배경 만들기
- 단순하게 애니메이션 되는 캐릭터 만들기
- 반복되는 배경 만들기
- 반복되는 배경의 스크립트
- 소팅 레이어 다루기
- 플레이어 비헤이비어 만들기
- 게임 멈추기
- 장애물 만들기
- 실시간으로 장애물 생성하기
- 게임 시작과 엔딩 비헤이비어 구성하기
- 스코어 기록하기
- 요약
- 도전 과제
- 프로젝트 개요
- 5장. 슈팅 갤러리: 애니메이션과 트윈 다루기
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 프로젝트 구성
- 환경 만들기
- 타깃 추가하기
- 유니티 애니메이션 시스템으로 애니메이션 만들기
- 유니티 애니메이션을 코드로 재생하기
- iTween을 사용해서 애니메이션 만들기
- 움직이는 타깃 만들기
- 다수의 타깃 만들기
- 타깃을 웨이브로 생성하기
- 시간 제한 추가하기
- 점수/최고 점수 추가하기
- PlayerPrefs
- 요약
- 프로젝트 완성
- 도전 과제
- 프로젝트 개요
- 6장. 횡 스크롤 플랫폼 게임
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 프로젝트 구성
- 타일 기반의 레벨 제작
- 배열 다루기
- 플레이어 만들기
- 점프 기능 추가하기
- 기즈모 다루기
- 플레이어 움직임 부드럽게 만들기
- 수집물 만들기
- 레벨 빌더에 새로운 오브젝트 추가하기
- 점수 기록하기
- 싱글톤
- 게임에서 승리하기
- 요약
- 도전 과제
- 프로젝트 개요
- 7장. 일인칭 슈터 파트 1: 외부 환경 만들기
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 프로젝트 구성
- 레벨 디자인의 기본: 계획하기
- 터레인 소개
- 하이트 맵
- 손으로 조형하기
- 외부 환경: 터레인
- 터레인에 색깔을 입히기: 텍스처
- 지형에 복수의 텍스처 적용하기
- 물 추가하기
- 나무 추가하기
- 디테일 추가하기: 풀
- 분위기 만들기
- 요약
- 도전 과제
- 프로젝트 개요
- 8장. 일인칭 슈터 파트 2: 내부 환경 만들기
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 프로젝트 구성
- 건축물 구성 개요
- 애셋 가져오기
- 타일 제작하기
- 그리드 스내핑으로 타일 배치하기
- 프롭의 제작과 배치
- 빠르게 라이트매핑하기
- 요약
- 도전 과제
- 프로젝트 개요
- 9장. 일인칭 슈터 파트 3: 게임플레이와 AI 적용하기
- 프로젝트 개요
- 목표
- 프로젝트 구성
- 플레이어 만들기
- 손전등 추가하기
- 무기 만들기
- 카메라 만들기
- 카메라 찍기
- 적 만들기
- 상태 기계 개요
- 적 움직임
- 고급 FSM
- 적에게 피해를 입히고 죽이기
- 컨트롤러 입력 사용하기
- 다른 레벨로 이동하기
- 요약
- 도전 과제
- 프로젝트 개요
- 10장. 게임 내장 레벨 에디터 만들기
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 레벨 에디터: 소개
- Lists
- 레벨 에디터: 실시간으로 벽을 추가/제거하기
- 레벨 에디터: 에디터 켜고 끄기, GUI, 다른 타일 선택하기
- IMGUI 컨트롤의 구조
- GUI
- GUILayout
- 레벨 에디터: 레벨을 파일에 저장하기/불러오기
- FileStreams
- Binary Formatter
- 요약
- 도전 과제
- 프로젝트 개요
- 11장. 후반 작업
- 프로젝트 개요
- 목표
- 시작 전 필수 사항
- 빌드 설정 설정하기
- 플레이어 설정을 통해 내보내는 프로젝트 커스터마이즈하기
- 윈도우용 인스톨러 구성하기
- 요약
- 도전 과제
- 프로젝트 개요
도서 오류 신고
정오표
정오표
[p.55 : 아래서 5행]
player=GameObject.Find("playerShip").transform
->
player=GameObject.Find("Player Ship").transform
[p.58 : 첫 행]
if (theCollision.gameObject.name.Contains("laser"))
->
if (theCollision.gameObject.name.Contains("Laser")) {
[p.208 : 3행 : 굵은 글씨 처리]
StartCoroutine(HideTarget());