이 책에서는 유니티 엔진 설치부터 시작하여, 게임 개발에 꼭 필요한 C# 문법을 학습하고 실제 게임 개발에서 활용되는 게임 UI 구성, 캐릭터 이동, 그래픽 처리, 애니메이션, 멀티플레이어 구현, 오디오 처리 등 다양한 주제를 차례대로 다루며 1인칭 슈팅 게임을 완성합니다.
Contents
1장
Level 1 : 게임 개발의 첫 걸음
1.1 게임의 탄생
__게임을 만드는 사람들
__게임 제작 단계
__게임의 구성 요소
1.2 게임이 탄생하는 공간, 유니티
__유니티란?
__유니티 설치
__비주얼 스튜디오 설치
마무리하며
2장
Level 2 : 유니티는 어떻게 사용할까
2.1 프로젝트 생성 및 설정
__프로젝트 생성
__프로젝트 설정
2.2 유니티 사용 방법
__유니티 화면 구경하기
__유니티 사용해보기
마무리하며
3장
Level 3 : 컴퓨터와 대화하는 언어, C#
3.1 프로그래밍, 코딩, 알고리즘
__용어 정의
__언어적인 특징
3.2 스크립트
__스크립트 생성
__스크립트의 구조
__컴퓨터와 첫인사
3.3 자료형
__자료형이란?
__정수(int)
__실수(float)
__문자(char)
__문자열(string)
__불(bool)
3.4 변수
__변수란?
__변수 생성
3.5 함수
__함수란?
__함수 생성
__함수 호출
__함수의 구조
3.6 객체 지향
__객체란?
__속성과 기능이란?
__객체 지향 언어의 장점
__객체 지향 언어의 특징
3.7 클래스
__클래스란?
__클래스 생성
__접근제어자
__부모 클래스 등록
3.8 배열과 리스트
__배열이란?
__배열 선언
__배열의 요소와 인덱스
__리스트란?
__리스트 선언
__리스트 접근
3.9 조건문
__조건문이란?
__조건문 - if
__조건문 - else
__조건문 - else if
__조건문 - switch
3.10 반복문
__반복문이란?
__반복문 - while
__반복문 - for
__반복문 - foreach
마무리하며
… 로딩 중 … : 개발을 시작하기에 앞서
1. 컴포넌트
__컴포넌트와 스크립트와 클래스
__컴포넌트 생성 및 삭제
__컴포넌트 사용
__컴포넌트 가져오기 - 인스펙터창에서 직접 할당
__컴포넌트 가져오기 - GetComponent〈T〉()
__컴포넌트 가져오기 - 검색
2. 자주 발생하는 에러
__컴파일 에러
__NullReference와 UnassignedReference
__OutOfRange
__Missing
3. 가장 중요한 것
4장
Level 4 : 시작 화면
4.1 리소스 삽입
__이미지 파일 삽입
__리소스 삽입
__패키지 생성: 익스포트
__패키지 삽입: 임포트
4.2 스프라이트 타입
__2D와 UI
4.3 UI 오브젝트 추가
__배경 만들기(Image)
__제목 만들기(Text)
__시작 버튼 만들기(Button)
__버튼 복제하기
4.4 해상도 조절
__Canvas Scaler
__게임 화면 해상도 조절
4.5 UI 기능 구현
__버튼 클릭
__시작 화면
__플레이 화면
__씬 전환
__씬 등록
마무리하며
5장
Level 5 : 프로토타입
5.1 플레이어 캐릭터
__플레이어 캐릭터 생성
__색상 변경
5.2 이동 기능
__스크립트 추가
__키보드/마우스의 입력 신호 감지
__입력 신호 활용
__입력 신호를 수치로 인식
__이동 기능 추가
5.3 이동 속도 보정
__기본 이동 속도
__대각선 이동 속도 보정
__프레임 기준 이동 속도 보정
5.4 점프 기능과 물리 작용
__물리 작용 컴포넌트
__오브젝트의 충돌
__점프 기능 구현
__점프 횟수 제한
__충돌 정보 감지
__물리 작용 적용
5.5 1인칭 시야와 회전 기능
__카메라 배치
__캐릭터의 좌우 회전
__바라보는 방향으로 이동
__시야의 상하 회전
__상하 회전 각도 제한
5.6 슈팅1-총알을 이용한 슈팅
__총알 제작
__재활용할 수 있는 오브젝트 - 프리팹
__슈팅 기능 구현
__총알 생성 위치
__총알 발사
__마우스 커서 가리기
5.7 슈팅2 - 총알이 없는 슈팅
__조준점 생성
__눈에 보이지 않는 슈팅 구현
__총에 맞은 효과 제작
__총에 맞은 부위에 효과 생성
5.8 적 캐릭터와 체력
__적 캐릭터 생성
__적 캐릭터의 체력
__적 캐릭터의 체력 시각화
__카메라와 방향 맞추기
5.9 적 캐릭터의 이동 및 공격 기능
__유한 상태 머신
__적 캐릭터의 상태
__상태별 함수 생성
__플레이어 캐릭터와의 거리 계산
__거리에 따른 상태 전환
__피격에 따른 상태 전환
5.10 길 찾기 인공지능
__내비게이션
__플레이어 캐릭터 쫓아가기
마무리하며
6장
Level 6 : 알파 버전
6.1 에셋 적용
__에셋 스토어
__맵
__하늘
__플레이어 캐릭터
__적 캐릭터
__총에 맞은 효과
6.2 불필요한 에셋 정리
__에셋 내의 파일 종류
__맵
__하늘
__플레이어 캐릭터
__적 캐릭터
6.3 애니메이션 적용
__플레이어 캐릭터
__적 캐릭터
6.4 플레이어 캐릭터의 체력
__플레이어 캐릭터의 체력 구현
__플레이어 캐릭터의 체력 시각화
6.5 적의 공격과 체력 감소 타이밍
__읽기 전용 애니메이션 수정
__체력 감소 타이밍 결정
__적의 피격 상태에서 기본 상태로의 전환
__피격과 죽음 상태 애니메이션
마무리하며
7장
Level 7 : 베타 버전
7.1 네트워크 환경
__포톤 설치
__포톤 적용
7.2 게임 접속
__서버와 로비 접속
__네트워크 연결 현황
__접속 실패 처리
__로비 화면 - 방 만들기
__로비 화면 - 방 참가하기
__방 만들기 기능 구현
__방 목록 띄우기
__방 참가하기
7.3 결과물 추출
__빌드하기
__빌드 파일로 플레이하기
7.4 플레이어 동기화
__참가자의 플레이어 캐릭터 생성
__내 플레이어 캐릭터만 제어
__시야 문제 해결
__플레이어 캐릭터의 행동 동기화(컴포넌트 동기화)
__플레이어 캐릭터 간의 공격
__플레이어 캐릭터 간의 공격 동기화(RPC 통신)
__피격 문제 해결
7.5 엔딩
__엔딩 화면
__패배
__승리
__방 나가기
__플레이 중인 방 입장 제한
마무리하며
8장
Level 8 : 마무리 작업
8.1 사운드 삽입
__사운드 임포트
__사운드 삽입
__사운드 유지
__게임 중단
__씬 전환 시 중복 방지
__버튼 효과음
__슈팅 효과음
__이동 효과음
8.2 저장하기와 불러오기 기능
__데이터 저장하기
__데이터 불러오기
__JSON 사용하기
8.3 종료하기 기능과 빌드 에러 해결
__종료하기
__빌드 에러 해결
8.4 스크립트 정리
마무리하며
Author
석윤경
유니티 엔진을 통해 게임을 만드는 과정은 생각보다 어렵지 않고, 꽤 재밌다는 사실을 모르는 많은 사람이 쉽게 포기하는 것을 보고 아쉬운 마음에 유니티가 얼마나 재밌는지 알리기 시작했다. 프리랜서 마켓 플랫폼 ‘크몽’에서 유니티 게임 개발 마스터로 활동 중이며 온라인 강의 플랫폼 ‘베어유’에서 유니티를 이용한 게임 개발 클래스를 운영 중이다.
유니티 엔진을 통해 게임을 만드는 과정은 생각보다 어렵지 않고, 꽤 재밌다는 사실을 모르는 많은 사람이 쉽게 포기하는 것을 보고 아쉬운 마음에 유니티가 얼마나 재밌는지 알리기 시작했다. 프리랜서 마켓 플랫폼 ‘크몽’에서 유니티 게임 개발 마스터로 활동 중이며 온라인 강의 플랫폼 ‘베어유’에서 유니티를 이용한 게임 개발 클래스를 운영 중이다.