자바스크립트로 하는 유니티 게임 프로그래밍
- 원서명Unity 3.x Scripting (ISBN 9781849692304)
- 지은이볼로디미르 게라시모프, 드본 크라츨라
- 옮긴이동준상
- ISBN : 9788960775336
- 30,000원
- 2014년 03월 18일 펴냄 (절판)
- 페이퍼백 | 340쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 게임 개발 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
이 책의 활용법
■ 독자를 위해 책의 1장~3장에 있는 예제 코드 파일을 제공합니다. 다운로드 파일에 포함되어 있습니다.
■ 아래 영상은 예제 파일을 처음 활용하실 때 도움을 드리기 위해 옮긴이가 만든 영상입니다. 게임 애셋 확인 및 레벨의 기본적인 커스터마이징 작업 내용이 담겨있습니다.
http://www.youtube.com/watch?v=9K5VIFJCPAg
■ 다음은 유니티의 기초부터 전문적인 내용까지 스터디할 수 있는 사이트입니다. 영상과 코드를 함께 제공해 좀 더 효과적으로 스터디할 수 있습니다.
요약
자바스크립트를 이용해서 게임 세상을 창조하고, 다른 라이브러리의 객체를 프로젝트에 포함시키며, 기본 템플릿을 수정해서 나만의 개성 있는 장면을 연출하는 방법을 설명하는 책이다. 유니티 스크립트를 이용하면 캐릭터의 동작 구현, 게임 애니메이션, 게임 객체의 제어, 점수와 레벨, 통계 등 게임 데이터의 처리, 스스로 길을 찾고 공격과 방어를 하는 인공지능 적군의 생성 등의 복잡한 작업이 가능해진다. 이 책은 단 몇 줄의 스크립트를 통해 간단한 동작을 구현하는 것부터 시작해서, 차츰 난이도를 높여서 복잡한 장면을 연출하기 위한 꽤 긴 스크립트를 자연스럽게 익힐 수 있도록 구성했다.
이 책에서 다루는 내용
■ 유니티에서 제공하는 기본 캐릭터 컨트롤러 조종하기
■ 기존 게임 객체에 기본 캐릭터 컨트롤러 스크립트를 적용하기
■ 게임 장면에 카메라를 설치하고 캐릭터의 뼈대가 될 리그 추가하기
■ 바이오 건, 무기, 체력, 통계, 보물상자, 캐릭터와의 상호작용 등 동적, 정적 객체 추가하기
■ 시차가 있는 2D, 3D 게임 배경 다루기
■ 오디오 게임 컨트롤러를 통한 음향 겹침 문제 해결과 배경 음향의 구현
■ 스스로 경로를 이동하며 주인공을 찾아내 공격하는 인공지능 로봇 만들기
이 책의 대상 독자
이 책에 담긴 다양한 예제와 코드를 제대로 활용하기 위해서는 유니티에 대한 사전 지식이 필요하다. 유니티 기반의 게임을 준비 중이면서, 자바스크립트를 이용한 코드 작성에 큰 부담을 느끼지 않는 개발자라면 이 책을 즉시 활용할 수 있다.
이 책은 프로그래밍, 특히 자바스크립트에 대한 기본 지식을 갖춘 독자에게 무척 유용한 유니티 개발서가 될 수 있을 것이고, 자바스크립트 이외의 프로그래밍 언어를 잠시라도 접해본 독자 역시 쉽게 프로젝트를 시작할 수 있게 구성했다.
이 책의 구성
1장, ‘유니티 스크립트의 세상 속으로’에서는 프로젝트 설정 방법과 내장된 캐릭터 컨트롤러를 활용하는 방법에 대해 소개한다. 또한 동적인 게임 객체와 충돌체, 이동하는 게임 무대와 폭파 효과에 대해 알아본다.
2장, ‘커스텀 캐릭터 컨트롤러’에서는 여러분이 직접 캐릭터 컨트롤러를 만드는 방법과 카메라 연동, 유니티의 애니메이션 시스템에 대해 알아본다.
3장, ‘액션 게임의 모든 것’에서는 게임 프로그래밍의 기본기라 할 수 있는 무기 발사, 아이템 획득, 보물상자 열기와 소프트바디, 그리고 테더링 구현 기법에 대해 소개한다.
4장, ‘드래그 앤 드롭 인벤토리’에서는 유니티 GUI 시스템을 이용해서 여러분이 원하는 게임 인벤토리와 캐릭터를 만드는 방법에 대해 살펴본다.
5장, ‘동적인 GUI의 구현’에서는 단계별로 나눠서 적을 조준하고 무기를 발사하기 위한 HUD와 타겟팅 시스템에 대해 소개한다.
6장, ‘게임 마스터 컨트롤러’에서는 게임 매니저를 이용해서 게임의 체계를 디자인 하고 프로그래밍하는 방법을 소개한다.
7장, ‘인공지능 경로 찾기와 각종 동작의 구현’에서는 인공지능 프로그래밍의 기초와 이를 이해하기 위한 기초 이론에 대해 소개한다.
부록, ‘유니티에서의 객체지향 프로그래밍’에서는 유니티 특유의 객체지향 문법을 이해할 수 있도록 기본적인 프로그래밍 기법을 소개한다.
목차
목차
- 1장: 유니티 스크립트의 세상 속으로
- 이 책에서 사용할 자료의 다운로드와 설치
- 게임 만들기의 시작
- 사용 가능한 캐릭터 컨트롤러
- 상호작용 객체
- 트리거
- 버튼
- 기본 버튼 스크립트
- 플랫폼 상황의 활성화
- 폭파 버튼
- Update 함수
- BOOM 함수
- 기폭장치 패키지 다운로드하기
- 버튼 누르기
- 동적인 객체
- 이동하는 박스
- 트리거드 객체
- 이동하는 플랫폼
- 플랫폼에 캐릭터를 태워서 이동하기
- 요약
- 2장: 커스텀 캐릭터 컨트롤러
- 조종 가능한 캐릭터 만들기
- 커스텀 캐릭터 컨트롤러
- 프로젝트 설정
- 움직임 만들기
- 캐릭터 벡터 값의 조절
- 사용자의 입력 정보 등록
- 리지드바디 컴포넌트
- 점프하기
- 사용자 입력 값의 확인
- 레이캐스팅
- 추가적인 점프 기능
- 뛰기
- 카메라 조작을 위한 스크립트 작성
- 카메라 스크립트의 작성
- 카메라 유형 목록의 생성
- 함수 작성하기
- 카메라 교환의 조절
- 캐릭터 움직임과 카메라 위치 설정
- 카메라 타입 변경 사항 업데이트하기
- 마우스로 카메라 조정하기
- 각도 고정하기
- 시차를 둔 카메라 동작
- 카메라와 함께 캐릭터 회전하기
- 간단한 애니메이션의 구현
- Start 함수와 Awake 함수의 비교
- 애니메이션 컴포넌트와 재생 속도
- 애니메이션 스크립트 작성
- 걷고 뛴 후 대기하는 애니메이션
- 각종 정보를 기록하기 위한 기본 스크립트의 작성
- 무기 체계의 프로그래밍
- Shooting 함수
- 무기 발사 시간의 조절
- 대체 무기 발사 함수
- 애니메이션의 구현 작업
- 애니메이션 혼합하기
- 애니메이션 스크립트의 개요
- 테더링
- 테더링 생성
- 애셋 요소의 생성
- 테더 매니저
- 테더링 생성
- StickySegment 스크립트
- 전반적인 테더링 스크립트의
- GUI.Box
- GUI.Button
- GUI.Label
- GUI.TextField
- GUI.TextArea
- GUI.Toggle
- GUI.Toolbar와 GUI.SelectionGrid
- GUI.HorizontalSlider와 GUI.VerticalSlider
- GUI.HorizontalScrollBar와 GUI.VerticalScrollBar
- GUI.BeginGroup과 GUI.EndGroup
- GUI.BeginScrollView, GUI.EndScrollView, 그리고 ScrollTo
- 드래그앤드롭 인벤토리
- 기본 코드의 구성
- 인벤토리 슬롯과 드래그할 수 있는 객체
- GUI 윈도우로 작업하기
- 인벤토리 슬롯
- 인벤토리 완성하기
- 3D 캐릭터 아바타
- 아바타를 나타내기 위한 카메라 설정하기
- 카메라 세부 설정하기
- 윈도우 드래그 가능 영역의 제한
- 캐릭터 장착 아이템 설정
- 장착 아이템 설정
- 아이템 추가하기
- 캐릭터 세부 조정
- 인벤토리 요소의 갱신
- 세부 조정작업 마무리하기
- Health 스크립트 작성
- 체력 표시를 위한 스크립트
- Health 스크립트에 추가할 내용
- 인스펙터에 게임 객체 연결하기
- Change_Item 스크립트
- 코드 작성을 위한 준비
- 아이템 변경
- 아이템 추가와 삭제
- 아이템 표시하기
- 아이템 배열의 증가값 조절
- UseItem 스크립트의 작성하기
- Change_Item 스크립트에 코드 추가하기
- PlayerStats 스크립트
- TextManager 스크립트
- textMesh 스크립트
- UseItem 스크립트에 코드 추가하기
- Health 스크립트에 코그 추가하기
- Armor 스크립트
- HealthBar 스크립트 수정
- Health 스크립트의 수정
- UseItem 스크립트 수정
- Change_Weapon 스크립트 작성
- UseWeapon 스크립트 작성
- PlayerStats 스크립트의 수정
- textMesh 스크립트 수정
- Score 스크립트
- 텍스트 파일에서 정보 읽어오기
- 텍스트 파일에 기록하기
- timer 스크립트
- textMesh 스크립트의 수정
- TextManager 스크립트의 수정
- textMesh 스크립트의 수정
- HUD 요소의 연결
- 게임 매니저 관련 스크립트
- 체력 관련 스크립트
- 아이템 선택 관련 스크립트
- ItemMultiplier, highScoreDisplay, ObjectiveDisplay, scoreDisplay, 그리고 weaponDisplay 함수
- saveDisplay 함수
- 무기 선택 관련 스크립트
- 베지어 방정식 스크립트의 생성
- ArcBehaviour 스크립트의 작성
- moveObject 스크립트의 작성
- 편집화면에서 스크립트 연결하기
- 레벨 스트리밍
- 미션의 생성
- 게임 레벨 관리하기
- Save/load 시스템
- 체크포인트를 이용해서 레벨 불러오기
- 계층 뷰 설정하기
- 경유의 주요 지점을 표시하기 위한 스크립트 작성
- 경로 배열 설정
- aiSimplePath 스크립트의 작성
- 경로 변수의 선언
- 경로 찾기 함수 작성의 시작
- 경로에 따른 이동
- 로봇의 활동을 중지시키기
- 인스펙터에 aiSimplePath 스크립트 연결하기
- enemyStats 스크립트의 작성
- 변수 설정하기
- 함수 설정하기
- 설정된 값을 가져오는 함수 작성
- 체력과 무기 관리를 위한 함수
- 인스펙터에서 enemyStats 스크립트 연결하기
- Shoot 스크립트
- 스크립트 작성 준비하기
- 무기 발사 함수의 작성
- 인스펙터에서 Shoot 스크립트 연결하기
- aiSimpleBehaviour 스크립트
- 스크립트 작성 준비
- 동작관련 함수
- 추가로 작성할 함수
- 인스펙터에서 aiSimpleBehaviour 스크립트 연결하기
- 추적 기능
- 다시 한 번 EnemyPath 함수 열기
- bulletCollision 스크립트의 작성
- 인스펙터에서 총알과 bulletCollision 스크립트의 연결
- ammoCollision 스크립트의 작성
- 인스펙터에서 적과 ammoCollision 스크립트 연결하기
- AmmoInfo 스크립트의 작성
- 인스펙터에서 무기에 AmmoInfo 스크립트 연결하기
- 캡슐화
- 클래스
- 구조체
- 코드 작성 예
- 상속
- 준비
- 코드 작성 예
- 다형성
- 코드 작성 예
- 중첩된 클래스