장바구니 담기 close

장바구니에 상품을 담았습니다.

유니티 C# 스크립팅 마스터하기

유니티 C# 스크립팅 마스터하기

  • 앨런쏜
  • |
  • 에이콘출판
  • |
  • 2016-01-27 출간
  • |
  • 432페이지
  • |
  • 188 X 235 X 22 mm /815g
  • |
  • ISBN 9788960778214
★★★★★ 평점(10/10) | 리뷰(1)
판매가

35,000원

즉시할인가

31,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
31,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에서 다루는 내용 ★

■ 클래스 상속, 인터페이스, 싱글턴, static 오브젝트 등 C#의 핵심 개념에 대한 이해
■ NPC를 위한 효과적인 인공지능 구현
■ 코드 최적화를 목표로 하는 이벤트 주도적 프로그래밍 활용 개발법
■ 탄탄한 디버깅 및 진단 기법 습득
■ 실용적인 환경에서 모노 프레임워크와 LINQ의 개념 이해
■ 후처리 효과를 위한 렌더링 기능 사용자화
■ 시야 코딩, 뷰 테스트, 다른 유용한 알고리즘들
■ 특성 등의 개념을 활용한 코드 품질 향상

★ 이 책의 대상 독자 ★

이 책은 학생, 교사, 전문가 등 유니티와 스크립트 작성에 대한 기본적인 내용은 숙지하고 있는 독자들을 위한 중급자용 안내서다. 유니티를 짧은 시간 동안 사용해본 독자뿐만 아니라 유니티 숙련자라고 하더라도 게임 개발 공정을 향상시키기 위한 중요하고 가치 있는 내용들을 얻어갈 수 있을 것이다.

★ 이 책의 구성 ★

1장, ‘유니티 C# 복습’에서는 C#의 기초와 유니티에서의 스크립트 작성을 간추려서 다룬다. 기초적인 내용에 대해 포괄적으로 설명하는 대신, 기초를 배운 적이 있지만 한동안 코딩을 쉬었거나 뒤에 나올 내용을 살펴보기 전에 빠른 복습을 원하는 독자에게 필요할 만한 내용들을 다룬다. 스크립트 작성에 필요한 기초 내용들(클래스, 상속, 프로퍼티, 다형성 등)을 숙지하고 있는 독자라면 1장은 건너뛰어도 좋다.

2장, ‘디버깅’에서는 디버깅에 대해 깊게 다룬다. 오류가 발생했을 때 찾아서 성공적으로 고칠 수 있는 능력을 갖춰야 견고하면서도 효과적인 코드를 작성할 수 있다. 때문에 디버깅은 무척 중요한 기술이다. 2장에서는 기초에만 그치지 않고 모노디벨롭 인터페이스를 통한 디버깅을 심도 있게 설명하고, 유용한 오류 기록 시스템을 만들어본다.

3장, ‘싱글턴과 정적 멤버, 게임오브젝트와 월드’에서는 게임오브젝트에 대한 접근, 변경, 관리를 둘러싼 폭넓은 기능들을 살펴본다. 구체적으로, 전역 접근이 가능하고 계속 유지되는 오브젝트를 만들기 위해 싱글턴 디자인 패턴을 살펴보고, 검색, 리스트, 정렬, 오브젝트 배치에 대한 여러 가지 기법들도 살펴본다. 그리고 신뢰도 높은 결과를 만들어내기 위해 하나로 통합된 게임 월드나 좌표 공간에서 오브젝트를 처리하는 유니티 스크립트를 작성해본다.

4장, ‘이벤트 주도적 프로그래밍’에서는 게임 최적화를 위해 구조를 재구성할 때 중요한 방법인 이벤트 주도적 프로그래밍에 대해 알아본다. 업데이트나 빈번히 발생하는 이벤트 안의 큰 부하를 일으키는 작업들을 이벤트 시스템으로 옮김으로써 절약한 시간은 다른 작업을 수행하는 데 가치 있게 사용할 수 있다.

5장, ‘카메라, 렌더링, 씬’에서는 카메라 동작에 대해 단순히 겉핥기만 하는 것이 아니라, 카메라의 구조와 렌더링되는 출력 결과를 직접 조정함으로써 카메라가 어떻게 동작하는지 깊이 들여다본다. 프러스텀(frustum) 검사, 컬링, 시야, 직교 투영, 깊이와 레이어, 후처리 효과 등을 설명한다.

6장, ‘모노를 이용한 개발’에서는 모노 라이브러리와 여기에 포함된 딕셔너리, 리스트, 스택 등의 유용한 클래스들을 살펴보고, 문자열과 정규식, LINQ 등의 다른 기능과 개념에 대해서도 알아본다. 6장을 통해 대량의 데이터를 빠르고 효과적으로 처리하는 방법을 배울 수 있다.

7장, ‘인공지능’에서는 인공지능 프로젝트를 만들기 위해 앞 장에서 다루었던 모든 내용들을 활용한다. 돌아다니기, 추격하기, 순찰하기, 공격하기, 회피하기, 체력 회복 아이템 찾기 등 다양한 동작을 수행하는 영리한 적을 만들어보며, 이 캐릭터를 만드는 과정을 통해 시야 문제와 근접 감지, 경로 탐색을 설명한다.

8장, ‘유니티 에디터 사용자화’에서는 유니티 에디터에 초점을 맞춘다. 유니티 에디터는 여러 기능들로 가득 차 있지만 더 많은 기능이 필요할 때도 있다. 먼저 에디터 클래스를 만드는 방법을 배우고, 에디터가 다른 방법으로 동작하도록 혹은 더 잘 동작하도록 에디터 자체를 사용자화하는 방법을 익힌다. 인스펙터에 표시되는 프로퍼티를 사용자화하고, 에디터 사용자화를 통해 게임에서 다중 언어 간 전환에 필요한 모든 기능을 갖춘 현지화 시스템을 만든다.

9장, ‘텍스처, 모델, 2D를 이용한 구현’에서는 스프라이트, 텍스처, GUI 구성 요소 등 2D 구성 요소를 이용해 할 수 있는 여러 가지 것들을 살펴본다. 3D 게임에서도 2D 구성 요소는 중요한 임무를 맡고 있으므로, 다양한 2D 관련 문제들과 효과적이면서 강력한 해결책들을 함께 알아본다.

10장, "소스 관리 및 유용한 팁’은 좀 더 일반적인 내용을 다룬다. 특정 주제에 국한되지는 않지만, 여기에서 다루는 다양한 팁과 요령은 모두 습득할 필요가 있는 중요한 내용들이다. 명료한 코드를 작성하는 팁, 데이터 직렬화, 소스와 버전 관리 시스템 통합 등의 내용을 살펴본다.


목차


1장 유니티 C# 복습
__C#을 선택하는 이유
__스크립트 파일 생성
__스크립트 인스턴스화
__변수
__조건문
____if문
____switch문
__배열
__반복문
____foreach문
____for문
____while 반복문
____무한 루프
__함수
__이벤트
__클래스와 개체지향 프로그래밍
__클래스와 상속
__클래스와 다형성
__C# 프로퍼티
__주석 남기기
__변수 표시
__? 연산자
__SendMessage와 BroadcastMessage
__요약

2장 디버깅
__컴파일 오류와 콘솔
__Debug.Log를 이용한 디버깅: 개발자 지정 메시지
__ToString 메소드 재정의
__시각적 디버깅
__오류 기록
__에디터 디버깅
__프로파일러
__모노디벨롭을 이용한 디버깅
__Watch 창
__계속하기와 단계별 실행
__호출 스택
__Immediate 창
__조건 중단점
__추적점
__요약

3장 싱글턴과 정적 멤버, 게임오브젝트와 월드
__게임오브젝트
__컴포넌트 상호작용
____GetComponent
____여러 개의 컴포넌트에 접근
____컴포넌트와 메시지
__게임오브젝트와 월드
____게임오브젝트 찾기
____오브젝트 비교
____가장 가까운 오브젝트 찾기
____지정한 형식의 오브젝트 모두 찾기
____게임오브젝트 간 경로 만들기
____오브젝트 계층에 접근
__월드 및 시간과 업데이트
____규칙 1: 프레임은 소중한 것이다
____규칙 2: 움직임은 시간과 비례해야 한다
__소멸되지 않는 오브젝트
__싱글턴 오브젝트와 정적 멤버
__요약

4장 이벤트 주도적 프로그래밍
__이벤트
__이벤트 관리
____인터페이스를 통해 이벤트 관리
____이벤트 매니저 만들기
__모노디벨롭에서 #region과 #endregion을 이용한 코드 접어두기
____이벤트 매니저 활용
____델리게이트를 이용한 대안
____MonoBehaviour 이벤트
____마우스 및 탭 이벤트
____애플리케이션 포커스 상태에 따른 멈추기
__요약

5장 카메라, 렌더링, 씬
__카메라 기즈모
__보이기
____오브젝트 가시성 감지
____오브젝트 가시성에 대해 좀 더 살펴보기
____프러스텀 검사: 렌더러
____프러스텀 검사: 점
____프러스텀 검사: 오클루전
____카메라 시야: 앞뒤 판별
__직교 카메라
__카메라 렌더링과 후처리
__카메라 진동
__카메라와 애니메이션
____추적 카메라
__카메라와 곡선
____카메라 경로: iTween
__요약

6장 모노를 이용한 개발
__리스트와 컬렉션
____List 클래스
____Dictionary 클래스
____Stack 클래스
__IEnumerable과 IEnumerator
____IEnumerator를 이용해 적을 차례로 순회
__문자열과 정규식
____널, 빈 문자열, 여백
____문자열 비교
____문자열 서식 지정
____문자열 순회
____문자열 생성
____문자열 찾기
____정규식
__가변 개수 파라미터
__통합 언어 쿼리
__LINQ와 정규식
__텍스트 데이터 애셋 다루기
____텍스트 애셋: 정적 로딩
텍스트 애셋: 로컬 파일 로딩
____텍스트 애셋: INI 파일 로딩
____텍스트 애셋: CSV 파일 로딩
____텍스트 애셋: 웹 로딩
__요약

7장 인공지능
__게임에서의 인공지능
__프로젝트 구성
__내비게이션 메시 굽기
__NPC 에이전트 만들기
__메카님에서의 유한 상태 머신
__C#에서의 유한 상태 머신
__Idle 상태 만들기
__Patrol 상태 만들기
__Chase 상태 만들기
__Attack 상태 만들기
__Seek-Health 상태 만들기
__요약

8장 유니티 에디터 사용자화
__일괄 이름 변경
__C# 특성과 리플렉션
__색상 혼합
__프로퍼티 노출
__현지화
__요약

9장 텍스처, 모델, 2D를 이용한 구현
__스카이박스
__절차적 메시 생성
__UV 애니메이션: 텍스처 스크롤
__텍스처 그리기
____1단계: 텍스처 혼합 쉐이더 만들기
____2단계: 텍스처 그리기 스크립트 만들기
____3단계: 텍스처 그리기 설정
__요약

10장 소스 관리 및 유용한 팁
__깃: 버전 관리
____1단계: 다운로드
____2단계: 유니티 프로젝트 준비
____3단계: 버전 관리를 위한 유니티 설정
____4단계: 깃 저장소 만들기
____5단계: 무시할 파일 지정
____6단계: 첫 커밋 수행
____7단계: 파일 변경
____8단계: 저장소에서 파일 가져오기
____9단계: 저장소 탐색
__리소스 폴더와 외부 파일
__애셋번들과 외부 파일
__지속되는 데이터와 게임 저장
__요약

도서소개

작가의 말


이 책은 유니티에서 C#을 이용한 게임 스크립트를 작성하는 데 필요한 고급 기술과 색다르고 효과적인 방법들에 대해 간략하면서도 집중적으로 탐구해보는 책이다. 유니티에 대한 입문서나 초급자 튜토리얼은 이미 셀 수 없이 많기 때문에 차별화될 수 있도록 좀 더 고급 주제에 집중했으며, 짜임새 있게 구성했다. 따라서 독자가 이미 애셋 임포트나 레벨 디자인, 라이트 매핑, C#이나 자바스크립트를 이용한 기초 스크립트 작성법 등 기본적인 유니티 사용법을 숙지하고 있음을 전제한다. 이 책은 처음부터 디버깅, 인공지능, 사용자 정의 렌더링, 에디터 확장, 애니메이션 및 움직임 등의 주제를 포함해 실용적인 사례와 예제를 살펴보고, 작성한 스크립트를 창의적으로 적용해 복잡한 결과를 만들어내는 방법을 다룬다. 이론상의 추상적 개념과 팁을 설명하기보다 어떠한 이론이 현실적인 예제에 어떻게 적용될 수 있는지를 보여줌으로써 독자의 프로그래밍 지식을 업그레이드하고, 이를 통해 단지 동작하기만 하는 게임 대신 최적화된 게임을 만들 수 있게 하는 것이 주된 목적이다. 이 책을 최대한 활용하려면 각 장을 처음부터 끝까지 순서대로 읽고, 읽는 동안 일반적이고 추상적인 사고방식을 유지하자.
시간과 공간 개념을 아울러 일반적인 원리를 설명하는 각 장마다의 간단한 개별 예제와 설명을 살펴보자. 이 예제들은 내가 사용한 구체적인 내용을 빼고 독자의 필요에 맞게 재사용할 수도 있다. 요컨대 이 책에서 다루는 내용들은 내가 선택한 특정 예제나 사례에만 관련된 것이 아니라, 독자의 프로젝트와 밀접한 내용들이다. 그럼 이제 시작해보자. - 저자 앨런 쏜

유니티는 이제 더 이상 설명이 필요 없을 정도로 널리 사용되는 게임 엔진이자 개발 도구다. 비단 프로그래머뿐 아니라 게임 디자이너와 아티스트에게도 비교적 진입 장벽이 낮은 편이고, 유니티의 기능을 활용하기 위한 책과 참고 자료들이 수없이 많아 가장 대중적인 게임 엔진으로서의 이점도 누릴 수 있다.
유니티와 관련해 개인적으로 한 가지 아쉬운 점이 있다면 초급자를 위한 유니티 입문서와 튜토리얼 등은 손쉽게 찾아볼 수 있는 반면, 초급자가 중ㆍ고급자로 넘어가기 위해 필요한 지식을 전달하는 책과 자료는 상대적으로 찾아보기 어렵다는 것이다. 초급자를 위한 내용들을 습득한 이후 바로 고급자에게 특화된 내용을 다룬 저술이나 논문 등을 따라가기란 다소 벅찬데, 그 내용상의 간극을 독자 스스로가 자료를 찾아가며 채워야 하는 것이 지금까지의 현실이었다.
이 책은 유니티에서 C#을 이용해 스크립트를 작성할 때 필요한 중ㆍ고급 기술들에 대해 집중적으로 탐구해보는 중급자용 안내서다. 유니티 활용을 다루는 초급서와 C# 및 닷넷(.NET)에 대한 초급서를 살펴봤다면, 이 책에서 다루는 실용적인 예제들을 통해 유니티에서 C#을 좀 더 적극적으로 활용하는 아이디어를 얻어볼 것을 권한다. - 역자 장석현

출판사 서평

★ 이 책에서 다루는 내용 ★

■ 클래스 상속, 인터페이스, 싱글턴, static 오브젝트 등 C#의 핵심 개념에 대한 이해
■ NPC를 위한 효과적인 인공지능 구현
■ 코드 최적화를 목표로 하는 이벤트 주도적 프로그래밍 활용 개발법
■ 탄탄한 디버깅 및 진단 기법 습득
■ 실용적인 환경에서 모노 프레임워크와 LINQ의 개념 이해
■ 후처리 효과를 위한 렌더링 기능 사용자화
■ 시야 코딩, 뷰 테스트, 다른 유용한 알고리즘들
■ 특성 등의 개념을 활용한 코드 품질 향상

★ 이 책의 대상 독자 ★

이 책은 학생, 교사, 전문가 등 유니티와 스크립트 작성에 대한 기본적인 내용은 숙지하고 있는 독자들을 위한 중급자용 안내서다. 유니티를 짧은 시간 동안 사용해본 독자뿐만 아니라 유니티 숙련자라고 하더라도 게임 개발 공정을 향상시키기 위한 중요하고 가치 있는 내용들을 얻어갈 수 있을 것이다.

★ 이 책의 구성 ★

1장, ‘유니티 C# 복습’에서는 C#의 기초와 유니티에서의 스크립트 작성을 간추려서 다룬다. 기초적인 내용에 대해 포괄적으로 설명하는 대신, 기초를 배운 적이 있지만 한동안 코딩을 쉬었거나 뒤에 나올 내용을 살펴보기 전에 빠른 복습을 원하는 독자에게 필요할 만한 내용들을 다룬다. 스크립트 작성에 필요한 기초 내용들(클래스, 상속, 프로퍼티, 다형성 등)을 숙지하고 있는 독자라면 1장은 건너뛰어도 좋다.

2장, ‘디버깅’에서는 디버깅에 대해 깊게 다룬다. 오류가 발생했을 때 찾아서 성공적으로 고칠 수 있는 능력을 갖춰야 견고하면서도 효과적인 코드를 작성할 수 있다. 때문에 디버깅은 무척 중요한 기술이다. 2장에서는 기초에만 그치지 않고 모노디벨롭 인터페이스를 통한 디버깅을 심도 있게 설명하고, 유용한 오류 기록 시스템을 만들어본다.

3장, ‘싱글턴과 정적 멤버, 게임오브젝트와 월드’에서는 게임오브젝트에 대한 접근, 변경, 관리를 둘러싼 폭넓은 기능들을 살펴본다. 구체적으로, 전역 접근이 가능하고 계속 유지되는 오브젝트를 만들기 위해 싱글턴 디자인 패턴을 살펴보고, 검색, 리스트, 정렬, 오브젝트 배치에 대한 여러 가지 기법들도 살펴본다. 그리고 신뢰도 높은 결과를 만들어내기 위해 하나로 통합된 게임 월드나 좌표 공간에서 오브젝트를 처리하는 유니티 스크립트를 작성해본다.

4장, ‘이벤트 주도적 프로그래밍’에서는 게임 최적화를 위해 구조를 재구성할 때 중요한 방법인 이벤트 주도적 프로그래밍에 대해 알아본다. 업데이트나 빈번히 발생하는 이벤트 안의 큰 부하를 일으키는 작업들을 이벤트 시스템으로 옮김으로써 절약한 시간은 다른 작업을 수행하는 데 가치 있게 사용할 수 있다.

5장, ‘카메라, 렌더링, 씬’에서는 카메라 동작에 대해 단순히 겉핥기만 하는 것이 아니라, 카메라의 구조와 렌더링되는 출력 결과를 직접 조정함으로써 카메라가 어떻게 동작하는지 깊이 들여다본다. 프러스텀(frustum) 검사, 컬링, 시야, 직교 투영, 깊이와 레이어, 후처리 효과 등을 설명한다.

6장, ‘모노를 이용한 개발’에서는 모노 라이브러리와 여기에 포함된 딕셔너리, 리스트, 스택 등의 유용한 클래스들을 살펴보고, 문자열과 정규식, LINQ 등의 다른 기능과 개념에 대해서도 알아본다. 6장을 통해 대량의 데이터를 빠르고 효과적으로 처리하는 방법을 배울 수 있다.

7장, ‘인공지능’에서는 인공지능 프로젝트를 만들기 위해 앞 장에서 다루었던 모든 내용들을 활용한다. 돌아다니기, 추격하기, 순찰하기, 공격하기, 회피하기, 체력 회복 아이템 찾기 등 다양한 동작을 수행하는 영리한 적을 만들어보며, 이 캐릭터를 만드는 과정을 통해 시야 문제와 근접 감지, 경로 탐색을 설명한다.

8장, ‘유니티 에디터 사용자화’에서는 유니티 에디터에 초점을 맞춘다. 유니티 에디터는 여러 기능들로 가득 차 있지만 더 많은 기능이 필요할 때도 있다. 먼저 에디터 클래스를 만드는 방법을 배우고, 에디터가 다른 방법으로 동작하도록 혹은 더 잘 동작하도록 에디터 자체를 사용자화하는 방법을 익힌다. 인스펙터에 표시되는 프로퍼티를 사용자화하고, 에디터 사용자화를 통해 게임에서 다중 언어 간 전환에 필요한 모든 기능을 갖춘 현지화 시스템을 만든다.

9장, ‘텍스처, 모델, 2D를 이용한 구현’에서는 스프라이트, 텍스처, GUI 구성 요소 등 2D 구성 요소를 이용해 할 수 있는 여러 가지 것들을 살펴본다. 3D 게임에서도 2D 구성 요소는 중요한 임무를 맡고 있으므로, 다양한 2D 관련 문제들과 효과적이면서 강력한 해결책들을 함께 알아본다.

10장, '소스 관리 및 유용한 팁’은 좀 더 일반적인 내용을 다룬다. 특정 주제에 국한되지는 않지만, 여기에서 다루는 다양한 팁과 요령은 모두 습득할 필요가 있는 중요한 내용들이다. 명료한 코드를 작성하는 팁, 데이터 직렬화, 소스와 버전 관리 시스템 통합 등의 내용을 살펴본다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.