책 소개
요약
이 책은 <헬로히어로>, <세븐나이츠> 같은 실전 모바일 RPG 게임을 저자의 설명과 함께 하나씩 따라해보면서 게임을 제작하는 책이다. 유니티를 처음 사용하더라도 어떻게 다운로드하고 설치하는지 배울 수 있으며 2D 게임에 특화된 내용에 주력하지만 유니티로 게임을 제작하는 전반적인 과정을 모두 다룬다. 게임 제작에 필요한 데이터들은 장별로 나뉘어 있어 따라하기 쉬우며 누구나 따라하기만 하면 모바일 RPG 게임을 쉽게 제작할 수 있을 것이다. 게임을 제작해보고 싶은 분, 유니티를 이용해 2D 게임을 개발하고 싶은 분, 완성된 프로젝트를 제작하고 싶은 분들에게 큰 도움이 될 것이다.
이 책에서 다루는 내용
게임오브젝트, 컴포넌트 등의 유니티 핵심 개념
유니티 2D 모드와 레이어의 사용 방법
유니티 애니메이션을 활용한 배경 스크롤링을 구현하는 방법
애니메이터를 이용해 캐릭터 상태 설계하기
충돌과 물리시스템을 다루는 방법
GUI의 구성방법과 터치이벤트 작성 방법
파티클을 이용한 이펙트 제작 방법과 사운드를 적용하는 방법
프로젝트를 플랫폼에 배포하는 방법
이 책의 대상 독자
유니티를 배우고 싶거나 게임 프로젝트를 경험해보고 싶어하는 모든 독자에게 적합한 입문서입니다. 또한, 모바일 2D 게임을 배우고자 하는 이에게도 충분한 내용을 담고 있습니다. 다음과 같은 독자들에게 이 책을 추천합니다.
- 모바일 게임 제작을 배우고자 하는 누구나
- 게임에 대한 기초 이론이 없는 프로그래머
- 프로그래밍 지식이 없지만 유니티를 배우고 싶은 기획자나 디자이너
- 유니티의 특성과 프로젝트를 다루는 방법을 빠르게 경험해보고 싶은 누구나
이 책의 구성
1장. ‘유니티 소개’에서는 유니티에 대한 기본 정보와 유니티 설치부터 실행까지를 소개하고 유니티 에디터의 인터페이스 구성을 살펴봅니다. 이미 유니티를 써본 적이 있는 사용자는 넘어가도 되는 부분입니다.
2장. ‘2D 게임 프로젝트 시작’은 유니티에서 2D 게임 프로젝트를 시작하기 위한 방법과 2D 게임에서 중요한 스프라이트 개념에 대해 설명합니다.
3장. ‘순환 배경 제작’은 2D 게임에서 자주 사용되는 순환 배경을 유니티 기능을 활용해서 만들어 봅니다. 스크립트를 사용하지 않고 유니티 애니메이션을 통해 구현하고 핵심기능인 유니티 애니메이터에 대해 다룹니다.
4장. ‘2D 아처 캐릭터 제작’은 게임 캐릭터 리소스를 어떤 방식으로 유니티에서 다루고 어떻게 캐릭터를 생성할 수 있는지에 대해 다룹니다. 유니티 2D의 핵심 기능인 스프라이트 에디터를 통해 아처의 애니메이션을 만들어 보고 스크립트를 작성하여 아처의 상태를 컨트롤해봅니다.
5장. ‘2D 몬스터 제작’은 적 캐릭터를 생성하고 피격 시스템을 위한 충돌과 물리 시스템에 대해 다룹니다. 유니티에서 텍스처를 사용하여 직접 애니메이션 클립을 작성하는 방법을 설명합니다. 마지막으로 핵심 기능인 프리팹 시스템에 대해 다룹니다.
6장. ‘아처 vs 몬스터’는 본격적으로 두 캐릭터의 전투를 다룬다. 이 과정을 통해 유니티 핵심 함수들을 다룹니다. 거의 모든 프로젝트에 사용될 만큼 중요하고 핵심적인 함수들로 구성되어 있습니다.
7장. ‘UI 제작’은 유니티에서 폰트를 다루는 방식과 게임에 자주 사용되는 UI를 다루는 방식, 버튼의 사용 등 유니티로 2D UI를 구성하는 방법을 다룹니다. 또한, 사용자 정보를 로컬에 저장하는 방법에 대해서도 다룹니다.
8장. ‘다양한 연출: 이펙트와 사운드’는 게임을 더 풍부하고 다이내믹하게 만들어주는 이펙트와 사운드를 제작하는 방식에 대해 다룹니다. 유니티의 강력한 파티클 시스템인 슈리켄을 통해 이펙트를 직접 만들어 보고 유니티에서 사운드를 임포트하여 직접 사용하는 방식까지 다룹니다.
9장. ‘배포’는 유니티 프로젝트를 여러 가지 플랫폼에 빌드할 수 있는 방식에 대해 다룹니다. 특히 가장 많이 사용하는 안드로이드 플랫폼 빌드에 대해서 비중 있게 다뤄봅니다.
부록, ‘유니티 개발자가 꼭 알아야 할 게임 제작 이론과 중요 컴포넌트’는 게임 개발을 처음 접해 보는 독자들을 위해 게임을 제작하기 위한 기본 지식들과 유니티에서 중요하게 다루는 사항에 대해 더 자세히 알아봅니다.
- 좌표계(Coordinate System)의 이해
- 로컬 좌표계
- 월드 좌표계
- 유니티에서 부모 좌표계와 자식 좌표계의 표현
- 벡터(Vector), Vector3
- 게임오브젝트(GameObject)와 컴포넌트
- 재질(Material)
- 셰이더(Shader)
- 애니메이터 뷰(Animator View), 메카님 애니메이션
- 스프라이트 시트(Sprite Sheet)
- 스프라이트 팩커(Sprite Packer)
- 메카님에서 레이어 사용
- Start 함수, Update 함수
- 코루틴(Coroutine)
부록 DVD 수록
이 책에서 설명하는 모든 예제 프로젝트의 소스 파일과 애셋 파일 다운로드
상세페이지
목차
목차
- 1장 유니티 소개
- 1.1 유니티 엔진의 역사
- 1.2 유니티의 장점
- 쉽고 빠른 에디터
- 멀티 플랫폼
- 강력한 성능
- 합리적인 가격정책
- 애셋스토어
- 방대한 자료와 커뮤니티
- 1.3 유니티 첫 실행
- 1.3.1 유니티 설치
- 1.3.2 유니티 간단 실습
- 1.3.3 무료 버전과 유료 버전의 차이점
- 1.4 유니티 인터페이스
- 1.4.1 뷰
- 1.4.2 씬 뷰 내비게이션
- 화살표 이동
- 포커싱
- 마우스
- 자유비행모드
- 1.4.3 뷰의 배치
- 1.4.4 스냅 기능
- 1.4.5 단축키
- 2장 2D 게임 프로젝트 시작
- 2.1 프로젝트 생성
- 2.2 2D 모드
- 2.3 리소스 임포트
- 2.4 스프라이트
- 3장 순환 배경 제작
- 3.1 배경에 시차 적용
- 3.1.1 2D 카메라
- 3.1.2 게임오브젝트와 컴포넌트
- 3.1.3 레이어
- 3.2 배경 순환 애니메이션 제작
- 3.2.1 애니메이션 뷰
- 3.2.2 애니메이터 뷰
- 4장 2D 아처 캐릭터 제작
- 4.1 아처 준비
- 4.1.1 스프라이트 시트
- 4.1.2 스프라이트 에디터
- 4.2 아처 시퀀스 애니메이션 제작
- 4.2.1 애니메이션 클립
- 4.3 아처 상태 설계
- 4.4 아처 컨트롤
- 4.4.1 C# 스크립트 작성
- 4.4.2 배경 컨트롤 스크립트 작성
- 4.4.3 아처 컨트롤 스크립트 작성
- 4.5 정리
- 5장 2D 몬스터 제작
- 5.1 적 몬스터 생성
- 5.2 애니메이션 클립 제작
- 5.2.1 탄젠트 편집
- 5.3 몬스터 상태 설계
- 5.4 몬스터 컨트롤 스크립트 작성
- 5.5 충돌체 설정
- 5.6 물리 시스템의 설정
- 5.7 게임오브젝트 파괴
- 5.8 프리팹 생성
- 5.9 정리
- 6장 아처 vs 몬스터
- 6.1 전투 준비
- 6.1.1 코루틴
- 6.1.2 Resources.Load
- 6.1.3 Instantiate
- 6.2 아처 공격
- 6.2.1 iTween
- 6.2.2 OnTriggerEnter
- 6.2.3 SendMessage
- 6.2.4 Animation Event
- 6.3 몬스터 공격
- 6.3.1 Time.deltaTime
- 6.4 정리
- 7장 UI 제작
- 7.1 폰트
- 7.1.1 다이나믹 폰트
- Importing True Type Font files(.ttf)
- 동적 글꼴
- 유니코드 지원
- TextMesh
- 7.1.2 스프라이트 배치
- 7.1.1 다이나믹 폰트
- 7.2 체력바
- 7.2.1 Invoke
- 7.3 Hud Text 제작
- 7.4 결과 화면 제작
- 7.4.1 PlayerPrefs
- 7.5 정리
- 8장 다양한 연출: 이펙트와 사운드
- 8.1 스모크 파티클 제작
- 8.1.1 파티클 시스템
- 재질 생성하고 적용
- 파티클 이펙트 Preview Panel
- 8.1.2 파티클 시스템 모듈: Shuriken
- 초기 모듈
- 방사 모듈
- 형태 모듈
- 수명기간 동안 속도 모듈
- 수명기간 동안 속도 모듈의 제한
- 수명기간 동안 힘 모듈
- 수명기간 동안 색상 모듈
- 속도에 의한 색상 모듈
- 수명기간 동안 크기 모듈
- 속도에 의한 크기 모듈
- 수명기간 동안의 회전 모듈
- 속도에 의한 회전 모듈
- 외부 힘 모듈
- 충돌 모듈
- 하위 에미터 모듈
- 텍스처 시트 애니메이션 모듈
- 렌더러 모듈
- 8.1.1 파티클 시스템
- 8.2 스모크 파티클 제어
- 8.3 피격 이펙트 제작
- 8.4 유니티 애셋 임포트
- 8.5 사운드
- 8.5.1 오디오 파일
- 8.5.2 지원 포맷
- 8.5.3 오디오 클립
- 8.5.4 오디오 애셋 불러오기
- 8.5.5 3D 오디오 사용
- 8.5.6 플랫폼별 상세 정보
- iOS
- Android
- 9장 배포
- 9.1 퍼블리싱 빌드
- 9.1.1 Platform Dependent Compilation
- 9.2 데스크탑 플랫폼 빌드
- 9.3 웹 플랫폼 빌드
- 9.4 안드로이드 플랫폼 빌드
- 9.4.1 안드로이드 SDK 설치
- 9.4.2 안드로이드 빌드 설정
- 9.5 i OS 플랫폼 빌드
- 9.5.1 애플 개발자 계정 생성
- 9.5.2 iOS 빌드 설정
- 9.6 정리
- 부록 유니티 개발자가 꼭 알아야 할 게임 제작 이론과 중요 컴포넌트
- A.1 좌표계
- A.2 로컬 좌표계
- A.3 월드 좌표계
- A.4 유니티에서 부모 좌표계와 자식 좌표계의 표현
- A.5 벡터, Vecto r3
- 위치의 표현
- 방향의 표현
- 벡터의 연산
- 벡터의 길이
- 벡터의 왼쪽? 오른쪽?
- A.6 게임오브젝트와 컴포넌트
- A.7 재질
- A.8 셰이더
- A.9 애니메이터 뷰, 메카님 애니메이션
- A.10 스프라이트 시트
- A.11 스프라이트 팩커
- A.12 메카님에서 레이어 사용
- A.13 START 함수, UPDATE 함수
- A.14 코루틴
- A.15 참고 문헌
도서 오류 신고
정오표
정오표
2015-05-11
p165
검정색으로 변경 필요
public int mOrinAttack;
[HideInInspector]
public int mAttack;
빨간색으로 변경 필요
public HpControl mHpControl;
[HideInInspector]
public bool IsCritical = false;