유니티로 배우는 C# 프로그래밍 6/e : 초보자를 위한 유니티 완벽 가이드북
Description
C#과 유니티 게임 엔진을 사용해서 3D 게임 개발을 시작하는 입문자를 대상으로 한 책이다. C#의 기본 문법, 클래스, 상속, 컬렉션, 제네릭, 델리게이트와 같은 주요 개념을 배울 뿐만 아니라, 유니티의 기초부터 시작해 게임 디자인, 조명, 플레이어 이동, 카메라 제어 및 충돌 등 게임 개발에 필요한 핵심 기술을 함께 다룬다. 후반부에서는 온라인 학습 자료, 자격증 정보 및 비디오 튜토리얼 등 유용한 정보를 소개한다.


◈ 이 책에서 다루는 내용 ◈
◆ 간단한 단계와 예제를 다루며 유니티에서 C# 스크립트를 생성 및 구현
◆ 생동감 있는 게임을 만들기 위한 3D 사고방식 개발
◆ C#을 사용해 플레이어 컨트롤러와 발사체 같은 기본적인 게임 메카닉 생성
◆ 인터페이스, 추상 클래스, 클래스 확장을 사용해 코드를 플러그형 구성 요소로 분할
◆ 스택, 큐, 예외, 오류 처리 등과 같은 핵심 C# 개념 숙지
◆ 텍스트, XML 및 JSON 데이터를 처리해 게임 데이터를 저장하고 로드
◆ 게임용 인공지능의 기본 개념 이해와 적의 동작을 제어하는 방법 구현


◈ 이 책의 대상 독자 ◈
프로그래밍이나 C#의 기본 사항을 다룬 적이 없는 초보자를 대상으로 하는 책이다. 하지만 다른 언어나 C#에 능숙한 전문가 수준의 독자라도 실제 유니티 게임 개발을 하는데 도움이 될 것이다.

저자

해리슨페론

저자:해리슨페론

역자:이지성,송정은

목차

1장.개발환경이해
__기술요건
__유니티2022시작하기
____맥OS사용
____새프로젝트생성
____에디터탐색
__유니티에서C#사용
____C#스크립트작업
____비주얼스튜디오소개
____C#파일동기화
__문서탐색
____유니티문서에액세스
____C#리소스찾기
__요약
____내용점검:스크립트다루기
2장.프로그래밍의구성요소
__변수의정의
____이름의중요성
____플레이스홀더의역할을하는변수
__메서드의이해
____코드를실행시키는메서드
____메서드도플레이스홀더다
__클래스소개
____일반적인유니티클래스
____클래스는청사진
____클래스간통신
__주석작업
____한줄주석
____여러줄주석
____주석추가
__구성요소넣기
____컴포넌트가되는스크립트
____MonoBehavior의지원
__요약
__내용점검:C#구성요소
3장.변수,타입및메서드살펴보기
__올바른C#작성
__코드디버깅
__변수의이해
____변수선언
____액세스한정자사용
____타입작업
____타입정리
____변수네이밍
____변수범위의이해
__연산자소개
____산술및할당
__메서드정의
____메서드선언
____네이밍규칙
____메서드의논리적우회
____매개변수지정
____반환값지정
____반환값의사용
____기본유니티메서드분석
__요약
__내용점검:변수와메서드
4장.제어흐름과컬렉션타입
__선택문
____if-else문
____switch문
____내용점검1:if,and,but
__컬렉션간단히살펴보기
____배열
____리스트
____딕셔너리
____내용점검2:컬렉션의모든것
__반복문
____for루프
____foreach루프
____while루프
____무한루프저너머로
__요약
5장.클래스,구조체및OOP작업
__OOP소개
__클래스정의
____클래스객체의인스턴스화
____클래스필드추가
____생성자사용
____클래스메서드선언
__구조체선언
__참조타입과값타입의이해
____참조타입
____값타입
__객체지향형사고방식의통합
____캡슐화
____상속
____컴포지션
____다형성
____OOP내용정리
__OOP를유니티에적용하기
____객체는클래스의동작
____컴포넌트에액세스
__요약
__내용점검:OOP
6장.유니티실행하기
__게임디자인기초작업
____게임디자인문서
____HeroBorn원페이지
__레벨만들기
____프리미티브생성
____3D공간에서의사고방식
____머티리얼
____화이트박싱
__조명의기초
____조명생성
____Light컴포넌트속성
__유니티의애니메이션
____코드에서애니메이션생성
____유니티애니메이션창에서애니메이션생성
____키프레임녹화
____커브와탄젠트
__요약
__내용점검:기본적인유니티의특징
7장.이동,카메라제어및충돌
__플레이어이동관리하기
__Transform컴포넌트를사용해플레이어이동하기
____벡터의이해
____플레이어입력받기
____플레이어이동
__카메라동작스크립팅
__유니티물리시스템으로작업하기
____모션의리지드바디컴포넌트
____콜라이더와충돌
____콜라이더트리거의사용
____물리요약
__요약
__내용점검:플레이어제어와물리
8장.게임메카닉스크립팅
__점프추가
____열거타입
____레이어마스크로작업하기
__발사체발사
____오브젝트의인스턴스화
____슈팅메카닉추가
____오브젝트빌드업관리
__게임매니저생성
____플레이어속성추적
____get과set접근자
____아이템수집업데이트
__GUI생성
____플레이어스탯표시
____승패조건
____지시문과네임스페이스를사용해일시정지및재시작하기
__요약
__내용점검:메카닉을활용한작업
9장.기본AI와적의행동
__유니티의3D공간내비게이팅
____내비게이션컴포넌트
____적에이전트설정
__적에이전트의이동
____절차적프로그래밍
____정찰위치참조
____적의이동
__적의게임메카닉
____수색과파괴:에이전트의대상변경
____플레이어의체력감소
____탄환의충돌감지
__리팩터링및DRY유지
__요약
__내용점검:AI와내비게이션
10장.타입,메서드및클래스의재고찰
__액세스한정자
____const와readonly키워드
____static키워드사용
__메서드다시살펴보기
____메서드오버로딩
____ref매개변수
____out매개변수
__중급OOP
____인터페이스
____추상클래스
____클래스확장
__네임스페이스충돌과타입별칭
__요약
__내용점검:레벨업
11장.스택,큐,해시셋
__스택
____Pop과Peek
____공용메서드
__큐로작업
____추가,제거및피크
____공용메서드
__해시셋사용
____연산수행
__중급컬렉션정리
__요약
__내용점검:중급컬렉션
12장.데이터의저장,로드및직렬화
__데이터포맷소개
____XML분석
____JSON분석
__파일시스템의이해
____에셋경로로작업
____디렉터리의생성과삭제
____파일의생성,업데이트,삭제
__스트림으로작업하기
____스트림리소스의관리
____StreamWriter와StreamReader의사용
____XMLWriter생성하기
____스트림자동으로닫기
__데이터직렬화
____XML의직렬화및역직렬화
____JSON의직렬화및역직렬화
__데이터의정리
__요약
__내용점검:데이터관리
13장.제네릭,델리게이트및기타사항살펴보기
__제네릭소개
____제네릭객체
____제네릭메서드
____타입매개변수제약조건
____유니티객체에제네릭추가
__델리게이트
____디버그델리게이트만들기
____델리게이트타입의매개변수
__이벤트발생
____이벤트생성및호출
____이벤트구독처리
____이벤트구독정리
__예외처리
____예외발생
____try-catch문의사용
__요약
__내용점검:중급C#
14장.이책을마친후
__심화학습
__객체지향프로그래밍다시살펴보기
__디자인패턴입문
__유니티프로젝트접근하기
__기타유니티기능
__향후과정
____C#리소스
____유니티리소스
____유니티자격증
__과제:커뮤니티에서나의실력검증해보기
__요약

출판사 서평

이책에서다루는내용

-간단한단계와예제를다루며유니티에서C#스크립트를생성및구현
-생동감있는게임을만들기위한3D사고방식개발
-C#을사용해플레이어컨트롤러와발사체같은기본적인게임메카닉생성
-인터페이스,추상클래스,클래스확장을사용해코드를플러그형구성요소로분할
-스택,큐,예외,오류처리등과같은핵심C#개념숙지
-텍스트,XML및JSON데이터를처리해게임데이터를저장하고로드
-게임용인공지능의기본개념이해와적의동작을제어하는방법구현

이책의대상독자

프로그래밍이나C#의기본사항을다룬적이없는초보자를대상으로하는책이다.하지만다른언어나C#에능숙한전문가수준의독자라도실제유니티게임개발을하는데도움이될것이다.

이책의구성

1장.‘개발환경이해’에서는유니티설치과정,에디터의주요기능,C#과유니티관련주제에대한문서검색을우선다룬다.또한유니티내부에서C#스크립트를생성하는방법을알아보고,모든코드의편집을진행하게될애플리케이션인비주얼스튜디오를살펴본다.

2장.‘프로그래밍의구성요소’에서는프로그래밍의최소단위개념을제시하면서변수,메서드,클래스의개념을실생활과연관지어설명함으로써이해를돕는다.또한간단한디버깅기술,올바른서식및주석작성,유니티가C#스크립트를컴포넌트로변환하는방법등도살펴본다.

3장.‘변수,타입및메서드살펴보기’에서는2장에서다룬기본개념을더깊이살펴보고자C#데이터타입,네이밍규칙,액세스한정자등프로그래밍기초에필요한모든것을배운다.또한메서드작성방법,매개변수추가방법,반환타입사용방법등을익히고,(MonoBehaviour)클래스에속하는기본유니티메서드를소개하면서마무리한다.

4장.‘제어흐름과컬렉션타입’에서는if-else문과switch문의코드에서결정을내리는일반적인접근방식을소개한다.그다음에는배열,리스트,딕셔너리를다룬후,컬렉션타입을순회하는반복문을살펴본다.마지막으로는조건부반복문과특수한C#데이터타입인열거형을다룬다.

5장.‘클래스,구조체및OOP작업’에서는먼저클래스와구조체를생성하고인스턴스화하는방법을자세히다룬다.이어서생성자를만들고,필드와메서드를추가하며,서브클래싱(subclassing)및상속의기초를익힌다.끝으로객체지향프로그래밍을포괄적으로설명하고,C#에어떻게적용할지알아본다.

6장.‘유니티실행하기’에서는C#구문에서벗어나게임디자인,레벨구축,유니티주요도구등을살펴본다.우선게임디자인문서의기본개념을다룬후레벨을만들고조명을추가한다.

7장.‘이동,카메라제어및충돌’에서는플레이어오브젝트를이동시키는다양한방법과3인칭시점카메라의설정방법을설명한다.또한유니티물리(Unityphysics)를활용한좀더사실적인이동효과의구현,콜라이더컴포넌트작업및씬(scene)내에서의상호작용캡처를다룬다.

8장.‘게임메카닉스크립팅’에서는게임메카닉의개념과효과적인구현방법을소개한다.우선간단한점프동작을추가하고,슈팅메카닉을생성한다음,아이템수집을처리하는로직을추가해이전장의코드를빌드한다.

9장.‘기본AI와적의행동’에서는게임인공지능의개념과HeroBorn에적용할콘셉트를간략히살펴본다.이장에서는유니티의내비게이션,레벨지오메트리및내비게이션메시,스마트에이전트,자동화된적의이동을다룬다.

10장.‘타입,메서드및클래스의재고찰’에서는C#언어의다양성과범위를더깊이이해할수있도록데이터타입,중급메서드기능,복잡한클래스에사용할수있는추가동작을더자세히살펴본다.

11장.‘스택,큐,해시셋’에서는중급컬렉션타입과기능을다룬다.따라서스택,큐,해시셋각각의사용과적합한개발시나리오를다양하게제시한다.

12장.‘데이터의저장,로드및직렬화’에서는게임정보를처리할수있도록준비하고자파일시스템과파일의생성,삭제,업데이트작업을다룬다.또한XML,JSON,이진데이터등과같은다양한데이터유형을살펴보고,마지막부분에서는C#객체를데이터포맷으로직렬화한다.

13장.‘제네릭,델리게이트및기타사항살펴보기’에서는C#언어의중급기능을소개하고,해당기능을실제시나리오에어떻게적용할지자세히알아본다.제네릭프로그래밍의개요를시작으로델리게이트,이벤트,예외처리와같은개념을다룬다.

14장.‘이책을마친후’에서는이책전반에서다룬주요주제를복습하고,C#과유니티를좀더학습할수있는자료를제공한다.온라인학습자료,자격증정보,저자가추천하는비디오튜토리얼채널등이포함된다.