유니티 2018 버전과 더불어 한층 더 충실하게 보강된 내용으로 돌아온 '절대강좌! 유니티'
유니티는 현재 가장 각광받고 있는 게임 개발 엔진으로, 국내외를 막론하고 출시되는 많은 모바일 게임은 물론 비게임 분야인 VR/AR, 영화, 산업 전반에서 유니티를 도입하는 추세다. 이 책에서는 유니티의 최신 버전인 유니티 2018을 이용해 게임 개발에 필요한 기능을 먼저 학습한 후 진행하는 방식이 아닌, 게임을 만들어 나가면서 필요한 기능을 알아보고 직접 구현하는 방식으로 진행한다.
유니티 2018에서 변경된 내용에 맞춰 책의 소스코드를 개정했으며 적 캐릭터의 AI에 시야각 기능을 추가해 개선하고 인벤토리 UI의 구현 및 데이터 저장 기법까지 다루고 있어 더욱 완성도 높은 게임을 구현하는 데 크게 도움될 것이다.
독자는 이 책을 끝까지 읽고 따라 하다 보면 어느새 게임 개발에 필요한 각종 지식을 습득하게 될 것이다.
★ 이 책에서 다루는 내용 ★
- 유니티 설치 및 인터페이스 소개
- 게임 스테이지 제작
- 레거시 애니메이션 및 메카님 애니메이션
- 적 캐릭터(NPC)의 유한상태머신(FSM; Finite State Machine) 구현
- 내비게이션 메쉬를 이용한 적 캐릭터 추적 기능
- 현실적인 폭발 효과 및 Muzzle Flash 구현
- 실시간 그림자와 모바일용 그림자 처리
- 레이캐스트(Raycast)를 응용한 발사 처리
- 능동적인 카메라 워킹 기법 소개
- 새로운 GUI 시스템인 유니티 UI 소개 및 게임 인터페이스 구현
- 게임매니저 및 오브젝트 풀 구현
- 내비게이션 고급 기법(동적 장애물, Off Mesh Link) 소개
- 라이트매핑 및 라이트 프로브 소개
- 인벤토리 UI 구현 및 아이템의 드래그, 드롭 기능 구현
- PlayerPrefs, 파일, ScriptableObject를 활용한 데이터 저장 기법 소개
- Progressive 라이트매퍼를 이용한 라이트맵 및 라이트 프로브 소개
도서 상세 이미지
이재현
SI 업계에서 13년간 프리랜서 개발자로 주로 반도체 분야와 금융권에서 일하다가, 2008년 아이폰 게임 개발에 첫발을 내디뎠다. 이후 유니티로 전향해 1인 개발자로서 다수의 게임을 앱 스토어에 출시했다. 유니티 관련 자료가 거의 없던 2011년에 국내 최초로 유니티 동영상 강좌 사이트(http://www.Unity3dStudy.com)를 개설해 많은 유니티 입문자에게 무료 강좌를 제공해 왔다. 현재 유니티코리아의 공인 마스터즈 2기로 활동 중이며, 오프라인에서도 유니티 기초와 VR/AR 강좌를 진행한다. 또한 1인 개발자로서 좋은 게임을 개발하고자 노력하고 있다.
- ▣ 01장: 유니티 게임 엔진의 소개
- 통합 멀티미디어 엔진으로의 진화
- 유니티의 장점
- 멀티 플랫폼 지원
- 통합 개발 환경(IDE)
- 유니티 라이선스 정책
- 정보 공유를 위한 커뮤니티 활성화
- 애셋 스토어
- 유니티로 만들어진 게임
- 유니티 설치
- 유니티 설치과정
- 유니티 계정 생성 및 로그인
- 유니티 에디터 소개
- 유니티 에디터 구조
- 뷰
- 툴 바 및 타이틀 바
- 단축키 설정
- 정리
- ▣ 02장: 게임 개발 준비
- 개발할 게임 소개 및 개발 순서
- 새 프로젝트 생성
- 유니티 에디터의 환경설정
- 프로젝트 뷰의 체계적인 관리
- 캐릭터모델 임포트하기
- 애셋 스토어
- 애셋 스토어에서 리소스 내려받기
- 정리
- ▣ 03장: 게임 스테이지 제작
- 바닥 생성 및 배치
- 텍스처
- 텍스처 임포트
- 텍스처의 해상도 조절
- 머티리얼
- 머티리얼 적용 방법
- 타일링 속성
- 셰이더 및 물리 기반 셰이딩
- 렌더링 모드
- 알베도
- 메탈릭 속성
- 노멀 맵
- 하이트 맵
- 오클루전
- 이미션
- 디테일 마스크
- 프리팹
- 벽 만들기
- 프리팹 생성
- 프리팹의 복제
- 스내핑 기능
- 조명
- Directional Light
- Point Light
- Spot Light
- Area Light
- 하늘 표현 방식
- 6방면 스카이박스
- 프로시저럴 스카이박스
- 큐브맵 스카이박스
- 정리
- ▣ 04장: 주인공 캐릭터 제작
- 3D 모델 불러오기
- 컴포넌트
- 스크립트 생성
- 키보드 입력값 받아들이기
- InputManager
- 스크립트 적용 방식
- 캐릭터 이동 - Translate
- 컴포넌트 캐시 처리
- Private 변수의 Inspector 노출
- 게임오브젝트의 이동 및 회전
- Translate 함수
- 정규화 벡터
- 벡터의 덧셈연산
- 캐릭터 회전 - Rotate
- 카메라 추적 - SmoothFollow
- 레거시 애니메이션
- 애니메이션 클립
- 애니메이션 적용
- 애니메이션 컨트롤
- 애니메이션 블렌딩
- 무기 장착
- 그림자
- 실시간 그림자
- Mesh를 이용한 그림자
- Level Of Detail 설정
- 정리
- ▣ 05장: 총알 발사 로직
- 총알 모델 준비
- Rigidbody 컴포넌트
- 물리엔진 속성 설정 - Physics Manager
- Collider 컴포넌트
- Box Collider
- Sphere Collider
- Capsule Collider
- Mesh Collider
- Wheel Collider
- Terrain Collider
- 충돌 감지 조건
- 충돌 이벤트
- Tag 활용
- 총알 발사 로직
- 총알의 발사 위치
- 런 모드에서 수정한 속성
- 기즈모의 활용
- 총알 발사궤적 효과 만들기 - Trail Renderer
- 파티클 활용하기
- 탄피 효과내기
- 총구 화염 효과 - Muzzle Flash
- 스파크와 탄흔 효과
- 드럼통의 폭발 효과
- Scale Factor
- Mesh Collider 활용
- 드럼통의 외형 변형 - Mesh Filter
- 텍스처의 변경하기 - Mesh Renderer
- 폭발력 적용하기 - AddExplosionForce
- 사운드
- AudioListener, AudioSource 컴포넌트
- 오디오 파일 임포트 및 설정
- 오디오 임포트 옵션 - Load Type
- 오디오 임포트 옵션 - Compression Format
- 총소리 구현
- 드럼통 폭발음 구현
- 정리
- ▣ 06장: 적 캐릭터 제작
- 유한상태머신의 정의
- 메카님
- 적 캐릭터 3D 모델 임포트
- 메카님 애니메이션으로 전환
- 애니메이션 리타깃팅
- 본 구조의 최적화 - 총 장착
- 애니메이터 컨트롤러
- 메카님 애니메이션 클립 설정
- 스테이트 전이와 파라미터
- 루트 모션
- Root Transform Position (Y) 속성
- Root Transform Position (XZ) 속성
- Root Transform Rotation 속성
- 내비게이션 - 적 캐릭터의 순찰 및 추적
- 내비게이션 설정 및 베이크
- NavMeshAgent 컴포넌트
- 적 캐릭터의 순찰 기능
- 순찰 지점 생성
- 스크립트 컴파일과 어셈블리 정의 파일
- 순찰 로직 구현
- 유한상태머신 구현
- 코루틴 함수
- 적 캐릭터의 상태 체크
- 적 캐릭터의 행동 처리
- 애니메이션 동기화 - Blend Tree
- NavMeshAgent의 회전 속도
- 적 캐릭터의 공격 기능
- Any State 와 Transition Duration
- 자동 발사 기능 구현
- 재장전 기능 구현 - 레이어 분리
- 적 캐릭터의 총알 제작
- 메쉬로 만드는 총구 화염 - Muzzle Flash
- 적 캐릭터의 피격 및 혈흔 효과
- Resources 폴더
- Sub-State Machine
- 정리
- ▣ 07장: 주인공 캐릭터 피격 및 타격감 구현
- 타격감 구현
- 주인공을 따라가는 기능 - FollowCam
- 셰이크 효과
- 주인공 피격 및 피격 효과
- 레이어 간의 충돌 감지
- Is Trigger 속성
- 애니메이션 속도 조절 및 오프셋 설정
- 불규칙적인 순찰
- 메시지 전달 - SendMessage
- 사용자 정의 이벤트 - Delegate
- 타격감 구현
- ▣ 08장: 유니티 UI 시스템
- Canvas 객체
- EventSystem 객체
- Canvas 컴포넌트
- Rect Transform 컴포넌트
- 앵커 프리셋
- anchoredPosition 속성
- 앵커 속성
- Image 컴포넌트
- Simple
- Sliced
- Tiled
- Filed
- RawImage 컴포넌트
- Button 컴포넌트
- Transition 속성
- Navigation
- Button Event
- Text 컴포넌트
- Text Effects
- Bloody Screen 효과
- 생명 게이지 구현
- 탄창 정보 UI 및 재장전 로직 구현
- 탄창 UI 디자인
- 정리
- Canvas 객체
- ▣ 09장: 게임 매니저
- 적 캐릭터의 출현 로직
- 하이러키 뷰를 간결하게 유지하기
- SpawnPointGroup 생성
- 사용자 정의 기즈모
- GameManager 객체 생성
- 싱글턴 디자인 패턴
- 오브젝트 풀
- 이벤트 함수의 실행 순서
- 정리
- 적 캐릭터의 출현 로직
- ▣ 10장: UI 고급
- 적 캐릭터의 생명 게이지 구현
- Screen Space - Camera 모드
- 무기 교체 UI
- UI 터치 이벤트 감지
- 일시 정지 기능
- Canvas Group
- 인벤토리 UI
- 인벤토리 UI 제작
- Grid Layout Group 컴포넌트
- 드래그 처리
- 드롭 처리
- 정리
- 적 캐릭터의 생명 게이지 구현
- ▣ 11장: 데이터 저장 및 불러오기
- PlayerPrefs를 활용한 데이터 저장
- 바이너리 파일 저장
- 객체 직렬화(Object Serialization)
- OnApplicationQuit
- 아이템 추가 및 삭제
- 인벤토리에 아이템 로드
- ScriptableObject
- 정리
- ▣ 12장: 레이캐스트 활용
- 레이캐스트
- 총알 자동 발사 로직
- 장애물 검출에 레이캐스트 응용
- 장애물 설정
- 주인공 캐릭터에 물리 엔진 적용
- 적 캐릭터의 지능화된 AI
- 원주의 점 좌표 계산
- 유니티 Editor 클래스
- 적 캐릭터의 시야각 구현
- 카메라의 장애물 감지
- 벽에 가려진 카메라의 높이 변경
- 장애물에 가려진 카메라의 높이 변경
- 정리
- ▣ 13장: 내비게이션 고급 기법
- 동적 장애물
- Off Mesh Link Generation
- 사용자 정의 Off Mesh Link
- 정리
- ▣ 14장: 라이트매핑 및 라이트 프로브
- 전역 조명
- 조명 모드
- Realtime 모드
- Mixed 모드
- Baked 모드
- 라이트매핑
- Generate Lightmap UVs 옵션
- Lightmap Static 플래그
- 라이팅 뷰
- Progressive 라이트매퍼
- 라이팅 뷰의 Environment
- Baked 라이트매핑
- Auto Generate 옵션
- 라이트맵 베이크
- Area Light
- 라이트 프로브
- Light Probe Group
- Anchor Override
- 정리
- ▣ 15장: 씬 관리
- Scene 분리
- Scene 병합
- 씬 전환 시 Fade In 로직
- 정리
- 책을 마치며
- GitHub 저장소: https://github.com/IndieGameMaker/UnityBook
- ZIP 형식으로 다운로드: https://github.com/IndieGameMaker/UnityBook/archive/master.zip
134쪽, 6번째 줄
이 기능은 유니티에서 제공하는 스크립트를 사용한다. 메뉴에서 [Assets] → [Import Package] → [Utility]를 차례로 선택하거나 프로젝트 뷰에 마우스 커서를 이동시키고 마우스 오른쪽 버튼을 클릭하면 팝업된 컨텍스트 메뉴에서 [Import Package] → [Utility]를 선택한다.
==>
유니티 허브를 이용해 유니티를 설치하면 메뉴에서 [Assets] → [Import Package]가 나오지 않을 수 있습니다. 이때는 에셋 스토어(Asset Store)에서 Standard Assets를 내려받고, 임포트한 후에 이후 과정은 책을 따라하면 됩니다.
203쪽, 3번째 줄
“Particles/
Addictive
”로 변경하면==>
“Particles/
Additive
”로 변경하면