유니티 모바일 게임 개발 2/e [모바일 게임 개발 기본부터 증강 현실 앱 만들기까지]
- 원서명Unity 2020 Mobile Game Development: Discover practical techniques and examples to create and deliver engaging games for Android and iOS, 2nd Edition (ISBN 9781838987336)
- 지은이존 도란(John P. Doran)
- 옮긴이이진오
- ISBN : 9791161755526
- 36,000원
- 2021년 08월 06일 펴냄
- 페이퍼백 | 472쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 게임 개발 프로그래밍
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
유니티 엔진으로 모바일 게임을 개발할 때 반드시 알아야 할 기본 사항을 예제와 함께 세심하게 다룬다. 프로토타입 형식의 게임을 같이 구성하면서 최신 모바일 게임이 포함해야 할 트렌디한 기능을 구현한다. 유저 트랙킹, 테스트, SNS, 마케팅까지 다루면서 단순히 게임 개발에서 멈추는 것이 아니라 하나의 종합 패키지의 관점에서 바라본다. 유니티로 모바일 게임을 만들고자 하는 사람에게 탄탄한 기반을 제공한다.
이 책에서 다루는 내용
■ 모바일 게임용 유저 인터페이스 디자인
■ 모바일 게임용 충돌 감지, 유저 입력 처리, 플레이어 이동 구현
■ 모바일 기기 입력을 사용한 흥미로운 게임 플레이 구현
■ 유니티 게임 엔진의 모바일 알림 패키지를 통한 유저 유지
■ 눈이 즐겁고 상호작용 가능한 안드로이드와 iOS 기기용 컨텐츠 구현
■ 유니티 광고와 인 앱 구매를 통한 게임 유료화
이 책의 대상 독자
iOS와 안드로이드용 모바일 게임을 개발하고 싶은 개발자를 위한 책이다. C#에 관한 사전지식은 필수는 아니지만, 있으면 좋다.
이 책의 구성
1장, ‘게임 구성하기’에서는 이 책의 기반이 될 단순한 프로젝트를 유니티에서 구현할 것이다. 이 프로젝트는 책 전반에 걸쳐 모바일 게임에 일반적으로 많이 적용되는 기능들을 추가할 것이다. 또한 유니티 기본 개념에 대한 환기 역할도 같이 한다.
2장, ‘안드로이드와 iOS 개발 프로젝트 설정’은 프로젝트를 iOS와 안드로이드 모바일 기기에 배포할 때 필요한 구성 방법을 다룬다. 안드로이드를 위해 자바(Java)와 안드로이드 SDK를 설치하고, iOS를 위해 Xcode를 설치해 설정한다.
3장, ‘모바일 입력/터치 컨트롤’은 모바일 기기에서 동작하는 입력 방식들을 보여준다. 마우스 이벤트를 시작으로, 터치 이벤트와 제스처를 감지하고, 속도계를 사용함과 동시에 Touch 클래스를 사용해 정보에 접근해본다.
4장, ‘해상도에 독립적인 UI’에서는 게임에 사용할 유저 인터페이스를 구성해본다. 타이틀 스크린을 시작으로 이후 장에서 사용할 여러 메뉴를 구성한다.
5장, ‘Unity Ads로 광고하기’는 유니티의 광고 프레임워크를 프로젝트에 적용시키고, 단순한 버전과 복잡한 버전의 광고를 어떻게 생성하는지 배운다.
6장, ‘인 앱 구매 적용하기’는 유니티의 인 앱 구매(IAP), In-App Purchase 시스템을 프로젝트에 적용하고, 소모성 콘텐츠 및 영구적 언락 콘텐츠를 생성하는 법을 다룬다.
7장, ‘소셜 네트워크와 함께’에서는 프로젝트에 소셜 미디어를 적용하는 법을 배운다. 트위터에 하이 스코어를 공유하고, 페이스북 SDK를 사용해 플레이어의 이름과 프로파일 이미지를 게임 내에서 표시한다.
8장, ‘알림으로 플레이어 잡아 두기’에서는 프로젝트에 알림을 구현한다. 구성으로 시작해 시간 예약된 기본 알림과 알림의 표시 방식을 커스터마이징해본다.
9장, ‘유니티 애널리틱스 사용하기’는 유니티의 통계 툴을 프로젝트에 적용시키는 몇 가지 방법을 다룬다. 커스텀 이벤트를 추적해보고, 리모트 세팅을 통해 게임을 스토어에서 다시 받지 않아도 게임 플레이를 수정할 수 있는 법을 배운다.
10장, ‘게임을 매력 있게’에서는 프로젝트의 수준을 높일 수 있는 여러 방법을 배운다. 트윈 애니메이션, 머티리얼, 포스트 프로세싱 효과, 파티클 효과를 사용해 프로젝트를 더 흥미롭게 즐길 수 있도록 만든다.
11장, ‘게임 빌드와 제출하기’는 구글 플레이와 iOS 앱스토어에 게임을 제출하는 과정을 다루면서, 더 원활하게 진행할 수 있는 팁과 트릭들을 담았다.
12장, ‘증강 현실’은 게임에 증강 현실을 추가하는 과정을 배운다. 먼저 프로젝트를 구성하고, ARCore, ARKit, AR Foundation의 설치와 설정 과정을 다룬다.
목차
목차
- 1장. 게임 구성하기
- 기술적 필수 사항
- 프로젝트 설정하기
- 플레이어 생성하기
- C# 스크립트를 사용해 플레이어 움직이기
- 어트리뷰트와 XML 주석으로 스크립트 향상시키기
- 어트리뷰트 사용하기
- 툴팁 어트리뷰트
- Range 어트리뷰트
- RequireComponent 어트리뷰트
- XML 주석
- Update와 FixedUpdate
- 한곳에 모으기
- 어트리뷰트 사용하기
- 카메라가 플레이어 따라다니게 하기
- 기본 타일 만들기
- 무한하게 만들기
- 장애물 만들기
- 요약
- 2장. 안드로이드와 iOS 개발 프로젝트 설정
- 기술적 필수 사항
- 빌드 설정 소개
- PC용으로 프로젝트 빌드하기
- 안드로이드로 프로젝트 내보내기
- 유니티용 Android Build Support 설치하기
- 안드로이드 프로젝트들을 위한 빌드 업데이트와 플레이어 설정
- 안드로이드 기기에 프로젝트 넣기
- 유니티에서 iOS 설정과 Xcode 설치
- iOS용으로 프로젝트 빌드하기
- 요약
- 3장. 모바일 입력/터치 컨트롤
- 기술적 필수 사항
- 마우스 입력 사용하기
- 터치 컨트롤을 사용한 이동
- 제스처 구현하기
- 핀치로 플레이어 스케일 조절하기
- 속도계 사용하기
- 게임 오브젝트 터치 감지하기
- 요약
- 4장. 해상도에 독립적인 UI
- 기술적 필수 사항
- 타이틀 스크린 만들기
- Rect Transform 컴포넌트
- 앵커
- 피봇
- 타이틀 텍스트 조정과 사이즈 조절
- Rect Transform 컴포넌트
- 버튼 사용하기
- 멈춤 메뉴 만들기
- 게임 멈추기
- 노치 기기에 GUI 대응하기
- 요약
- 5장. Unity Ads로 광고하기
- 기술적 필수 사항
- Unity Ads 설정하기
- 단순 광고 보여주기
- 콜백 메서드 활용하기
- 보상이 있는 사전 동의 광고
- 쿨다운 타이머 추가하기
- 요약
- 6장. 인 앱 구매 적용하기
- 기술적 필수 사항
- 유니티 IAP 설정하기
- 첫 구매 제품 만들기
- 구매를 복구하는 버튼 추가하기
- 본인이 원하는 스토어에 맞게 구매 설정하기
- 요약
- 7장. 소셜 네트워크와 함께
- 기술적 필수 사항
- 스코어 시스템 추가하기
- 트위터를 통해 하이 스코어 공유하기
- 페이스북 SDK 내려받기와 설치
- 페이스북을 통해 게임에 로그인하기
- 페이스북 이름과 프로파일 사진 보여주기
- 요약
- 8장. 알림으로 플레이어 잡아 두기
- 기술적 필수 사항
- 알림 설정하기
- 알림 스케줄을 미리 설정하기
- 알림 커스텀화하기
- 요약
- 9장. 유니티 애널리틱스 사용하기
- 기술적 필수 사항
- 애널리틱스 구성하기
- 커스텀 이벤트 추적하기
- 기본 CustomEvents 보내기
- 파라미터를 가진 커스텀 이벤트 전송하기
- 퍼널 애널라이저 사용하기
- 리모트 세팅으로 속성 조절하기
- 요약
- 10장. 게임을 매력 있게
- 기술적 필수 사항
- 린트윈을 사용해 애니메이션하기
- 린트윈 구성
- 간단한 트윈 만들기
- 멈춤 메뉴에 트윈 추가하기
- 머티리얼 다루기
- 포스트 프로세싱 효과 사용하기
- 파티클 효과 추가하기
- 요약
- 11장. 게임 빌드와 제출하기
- 기술적 필수 사항
- 게임의 배포 버전 빌드 만들기
- 구글 플레이 스토어에 게임 올리기
- 구글 플레이 콘솔 설정하기
- 구글 플레이에 앱 배포하기
- 애플 iOS 앱스토어에 게임 올리기
- 애플 개발자 구성과 권한설정용 프로파일 생성하기
- iTunes Connect에 앱 추가하기
- 요약
- 12장. 증강 현실
- 기술적 필수 사항
- AR용으로 프로젝트 구성하기
- 기본 구성
- 표면 감지하기
- AR 환경과 상호작용하기
- AR에 오브젝트 생성하기
- 요약
도서 오류 신고
정오표
정오표
[p.71 : 아래에서 5행]
var spawnPoint = obstacleSpawnPoint[Random.Range(0, bstacleSpawnPoint.Count)]
;
->
var spawnPoint = obstacleSpawnPoint[Random.Range(0, ostacleSpawnPoint.Count)]
;
[p.124: 11행]
1. 다음 코드를 PlayerBehaviour 스크립트에 추가한다.
->
1. 이전 코드를 아래와 같이 수정한다.