Top

Unity 3.x Game Development Essentials 한국어판 [C#과 자바스크립트로 하는 유니티 3.x 게임 개발]

  • 원서명Unity 3.x Game Development Essentials (ISBN 9781849691444)
  • 지은이윌 골드스톤
  • 옮긴이조형재
  • ISBN : 9788960772991
  • 35,000원
  • 2012년 04월 30일 펴냄
  • 페이퍼백 | 520쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

책 소개



유니티 테크놀로지 사의 교육 전문가가 알려주는 유니티 게임 프로그래밍 입문서!
C#과 자바스크립트를 익힐 수 있는 유니티 게임 개발 스크립팅!!


다년간의 유니티 강의를 거쳐, 현재 유니티 테크놀로지에서 교육 관련 부분을 담당하고 있는 윌 골드스톤의 경험과 지식이 담긴 초보자를 위한 유니티 입문서다. 세계 최초의 유니티 책으로 유명한 『Unity Game Development Essentials』의 개정판으로 3D의 기본 개념, 인터페이스와 스크립팅 입문, 유니티 핵심 기능과 스크립팅 활용을 통한 실제 게임 메카닉 구현, 최적화와 게임 빌드를 통한 배포까지의 내용을 실제 개발 예제를 통해 자세히 설명한다.


[ 소개 ]

게임 엔진은 우리가 익히 알고, 즐기는 게임들의 이면에서 그 게임을 돌아가게 만드는 도구다. 유니티는 가장 널리 사용되고, 사랑 받는 게임 개발 엔진이다. 게임뿐 아니라 웹, 데스크톱, 모바일, 콘솔에서의 인터랙티브한 경험을 만들기 위해 취미 개발자에서부터 대형 스튜디오에 이르기까지, 다양한 사람들이 유니티를 사용한다. 유니티가 제공하는 직관적이고 사용하기 쉬운 기능과 이 책을 통해, 이전과는 비교할 수 없을 정도로 손쉽게 게임 개발을 시작할 수 있다.

실질적인 접근을 취하는 이 책은 유니티를 이용한 개발에 들어가기 전에, 먼저 3D 게임 개발의 주요 개념을 소개한다. 그 다음 간단한 게임 디자인의 프로토타입을 거쳐, 본격적으로 더 큰 규모의 게임 개발로 들어간다. 이 과정에서 3D 월드 제작, 스크립팅, 게임 메카닉 구현과 같이 게임 개발의 필수 요소를 다룬다.

[부록 CD 수록] 유니티코리아 제공
■ 윈도우용 유니티 3.5.1 무료 버전
■ 유니티 프로모션 영상


[ 이 책에서 다루는 내용 ]

■ 유니티 3.X 이후 버전을 이용한 게임 개발과 C# 또는 자바스크립트를 이용한 스크립팅
■ 게임 개발에 첫 발을 내딛고, 손쉽게 플레이 가능한 3D 게임 제작
■ 스크립팅, 물리, 인스턴스 생성, 파티클 효과 등의 게임 개발의 주요 개념 이해
■ 핵심적인 팁과 노하우를 통해 게임을 테스트하고 최적화
■ 멋진 3D 섬을 만들고, 미니 게임을 추가
■ 유니티에 내장된 지형과 외부에서 제작한 모델을 함께 사용하는 배경 제작 방식
■ 플레이어 캐릭터의 상호작용
■ 메뉴, HUD, 아이템 수집 기능 구현


[ 이 책의 대상 독자 ]

개임 개발과 프로토타이핑을 처음 경험하는 아티스트나 애니메이터, 또는 마음 한 구석에 게임 개발에 대한 꿈을 품고 몇 시간씩 게임을 플레이하는 사람이라면, 유니티와 이 책이 좋은 출발점이 될 수 있다. 게임 개발에 대한 사전 지식은 따로 필요치 않다. 게임 개발에 대한 열정만 있으면 된다.


[ 이 책의 구성 ]

1장. 3D 세계로의 입문: 3D에서의 작업에 대한 기본 개념과 유니티를 이용한 게임 개발을 설명한다. 3D 개발에 대한 기본적 내용을 설명한 후에는 유니티 에디터를 구성하는 주요 인터페이스 요소를 살펴본다.

2장. 프로토타이핑과 기본 스크립팅: 실습을 통한 학습이라는 취지 하에, 간단한 게임 메카닉의 프로토타입을 만들면서 유니티에 대한 본격적인 설명을 시작한다. 유니티를 통한 첫 번째 상호작용을 구현하는 과정에서 C#과 자바스크립트를 만나게 된다.

3장. 배경 제작: 유니티를 다루기 위한 기본적인 사항을 익혔으므로 지형 도구를 이용해서 실제 배경 제작에 들어간다.

4장. 플레이어 캐릭터와 스크립팅: 배경이 일차적으로 완성됐기 때문에 여기서는 유니티에서 플레이어 캐릭터를 만드는 방법을 살펴본다. 캐릭터 스크립팅을 중심으로 유니티에서 다양한 상호작용을 구현하기 위해 필요한 주요 스크립팅 개념을 살펴본다.

5장. 상호작용: 유니티를 이용한 게임 개발에서 매우 중요한 세 가지 상호작용 방법을 설명하는 핵심적인 장이다. 충돌 감지, 레이캐스팅, 트리거 충돌 감지에 대해 살펴본다.

6장. 수집, 인벤토리, HUD: 다양한 상호작용 방법을 배웠다면, 여기서는 그 내용을 확장해서 플레이어의 인벤토리를 만들고, 수집된 아이템을 표시하는 HUD의 구현 방법을 살펴본다.

7장. 인스턴스 생성과 리지드바디: 다시 한 번 게임 속에서 상호작용을 만들기 위해서, 이번에는 유니티에 내장된 물리 엔진을 활용한다. 그리고 이를 애니메이션과 결합해서 미니 슈팅 게임을 만든다.

8장. 파티클 시스템: 스크립팅에서 잠시 벗어나 유니티의 시각 효과 부분을 살펴본다. 불과 연기 파티클 시스템을 이용해서 모닥불을 만든다.

9장. 메뉴 디자인: 모든 게임은 유저 인터페이스가 필요하다. 유니티에서 메뉴를 만들 수 있는 두 가지 방법, GUITexture와 GUI 스크립팅에 대해 각각 살펴본다.

10장. 애니메이션의 기초: 게임을 역동적으로 만들기 위해서는 애니메이션이 필수적이다. 게임의 종료 시퀀스를 만드는 과정을 통해서 스크립팅과 애니메이션 패널을 이용한 애니메이션 방법을 살펴본다.

11장. 최적화와 최종 다듬기: 게임플레이를 의도한 대로 구현하는 부분은 중요하다. 그러나 사람들에게 선보이기 전에 완성도 있는 모습을 갖추는 것 역시 중요하다. 게임의 시각적 완성도를 높이면서도 성능을 유지하기 위한 추가적 시각 효과와 최적화에 대해 살펴본다.

12장. 게임 빌딩과 공유: 개발자로 성장하기 위해서는 게임을 플레이어에게 공개하고 피드백을 받는 부분이 반드시 필요하다. 여기서는 게임을 독립 스탠드얼론 버전과 웹 버전으로 만드는 방법을 설명한다.

13장. 테스트와 향후 개발: 플레이어의 피드백을 받는 방법과 함께, 유니티를 이용한 개발을 이제 막 시작한 독자를 위한 몇 가지 조언을 소개한다. 또한 이 책을 끝내고 향후 유능한 개발자로 성장하는 과정에서 알아두면 좋을 자료도 소개한다.


[ 추천의 글 ]

처음 유니티를 만들 때, 우리 팀은 작고 아름다운 게임을 만들던 세 명의 프로그래머가 전부였다. 좋은 게임 엔진은 큰 비용을 지불하지 않고서는 사용할 수 없었다. 그래서 우리는 직접 엔진을 만들기로 결정했다. 게임을 만드는 일보다는 멋진 도구를 만드는 일을 더 즐겼다. 면밀한 성찰 끝에 우리가 만든 간단한 라이선싱 구조와 개방 커뮤니티가 결합된 새로운 도구를 통해, 게임이 만들어지고 배포되고 플레이되는 방식의 전 과정이 모두 바뀔 수 있는 잠재력이 있음을 깨달았다.

오늘에 이르기까지 늘 쉬웠던 것만은 아니다. 말도 안되게 오랜 낮과 밤 동안, 샌드위치 가게 아르바이트와 로펌의 웹사이트 만들기와 곤궁함을 버텨야 했다. 게임 개발의 민주화라는 우리 꿈의 성공 확률은 1000분의 1 정도에 불과하다고 귀띔을 해주는 벤처투자자도 있었다. 하지만 우리는 기꺼이 그 작은 가능성에 희망을 걸었다.

깔끔한 패키지에 엄청나게 복잡한 기술을 채워 넣고, 그것을 인간이 할 수 있는 최대한으로 단순하게 만드는 일을 해냈다. 그리고 우리의 소프트웨어에 대한 첫 번째 책, 2009년에 출시된 『Unity Game Development Essentials』를 보며 희열을 느꼈다. 이 책은 많은 사람이 유니티에 익숙해질 수 있게 도와줬다. 그래서 윌이 개정판을 출간할 예정이라고 했을 때, 기꺼이 서문을 써주기로 했다. 유니티 커뮤니티의 오랜 멤버이기도 한 윌을 2007년 처음 만났다. 당시 그는 영국의 본머스(Bournemouth) 대학에서 유니티를 이용한 게임 개발을 강의하고 있었다. 윌은 학생들을 위해 거의 최초의 유니티 비디오 튜토리얼을 제작했고, 그것을 포럼에서 공유했다. 이를 통해 사람들이 유니티 1.5와 그 이후 버전에 관심을 갖는 데 도움을 줬다.

윌은 지금은 유니티 테크놀로지(Unity Technologies)에서 함께 일하고 있다. 윌은 지금도 누군가를 가르치는 과거의 일을 계속하고 있다. 교육 자료를 만들어서 새로운 유저의 유입을 도우며 커뮤니티에서 활발한 활동을 한다. 지금 손에 쥔 이 책은 처음부터 다시 쓰여진 책이다. 그러나 이전 책의 장점을 고스란히 간직하고 있다. 이전 책의 각 내용은 폭넓게 확장되고, 향상되고, 더욱 상세하게 기술됐다. 또한 이 책에는 그 이후 유니티에 새롭게 추가된 많은 기능이 포함돼 있다. 그렇다고 이 책을 통해 새로운 기능만 배우는 것은 아니다. 윌은 유니티의 기초, 스크립팅, 스크립팅 학습, 심지어 유니티의 영원한 난제인 “C#인가 자바스크립트인가?”라는 문제까지 상세하게 설명한다. 두 프로그래밍 언어를 한 책에서 동시에 다룸으로써 사용자가 자신에게 맞는 언어를 결정하는 데 큰 도움을 준다.

아티스트이건, 레벨 디자이너이건, 아니면 그냥 게임 개발자를 꿈꾸는 젊은이이건, 이 책은 유니티 학습의 훌륭한 출발점이 될 것이다. 3D의 핵심적 개념을 설명하면서 시작하는 이 책은 무에서부터 모든 것을 차근차근 다뤄 나간다. 어떤 사전 지식도 필요치 않다. 그러면서도 독자가 계속해서 페이지를 넘기고 코드를 작성해야 할 정도의 속도로 내용이 진행된다.

유니티 커뮤니티에 들어온 것을 환영한다. 그리고 유니티를 만드는 우리가 느끼는 만큼의 즐거움을 이 책을 통해서 느낄 수 있기를 희망한다.

- 데이비드 헬가슨(David Helgason)
유니티 테크놀로지 CEO 및 공동 창립자

유니티코리아 지사장으로 부임하기 전부터 윌 골드스톤과는 지난 몇 년간 오랜 친분을 쌓아왔습니다. 유니티에 관한 윌 골드스톤의 지식은 어느 누구도 따라올 수 없을 만큼 탁월합니다. 뿐만 아니라 다른 이들에게 유니티 지식을 전파하고자 하는 의지는 그와 나누는 이메일과 대화, 그의 인품 자체에서 고스란히 느낄 수 있습니다. 윌과 스카이프로 이야기를 나누고, GDC나 유나이트 같은 유니티 행사에서 그의 강의를 듣는 일은 언제나 즐겁습니다. 유니티에 관심 있는 사람이라면 그의 강의를 꼭 한번 들어보기를 추천합니다.

윌 골드스톤이 심혈을 기울여 집필한 이 책은 유니티 초보자들의 필독서로 꼽을 만큼 아주 좋은 책입니다. 이 책은 이해하기 쉬운 방법으로 3D 게임 이론의 기본 개념을 소개하고, 명확한 가이드와 예제와 함께 유니티 3D 소프트웨어를 설명합니다. 책의 마지막 부분까지 모두 읽고 나면 완전한 3D 게임을 만들 수 있게 될 것입니다. 이 책에서 윌 골드스톤은 어려운 설명을 피하고, 게임 개발 분야의 이론을 이해하는 데 매우 좋은 출발점으로서 따라 하기 쉬운 지침을 제공합니다.

스크립팅 언어, C#과 자바스크립트 두 언어를 사용하는 유니티의 특성을 잘 살려 윌 골드스톤은 두 언어의 예제와 연습문제를 다양하게 설명했습니다. 만약 코딩 언어를 잘 이해하지 못하는 독자라면, 이 책을 통해 쉽게 차이점을 배울 수 있을 것입니다.

유니티3D 개발에 몸담고 있는 프로그래머와 디자이너, 그리고 유니티3D에 관심이 많은 학생이라면 꼭 읽으셔야 할 필독서입니다.

- 윌리엄 양
유니티 테크놀로지스 코리아 지사장

저자/역자 소개

[ 저자 서문 ]

게임 엔진은 우리가 익히 알고, 즐기는 게임의 이면에서 그 게임을 돌아가게 만드는 도구라고 할 수 있다. 유니티는 가장 널리 사용되고, 사랑받는 게임 개발 엔진이다. 게임뿐 아니라 웹, 데스크톱, 모바일, 콘솔에서의 인터랙티브한 경험을 만들기 위해 취미로 게임을 만드는 개발자에서부터 대형 스튜디오에 이르기까지 다양한 사람들이 유니티 게임 엔진을 사용한다. 유니티가 제공하는 직관적이고 사용하기 쉬운 기능과 그에 대한 설명을 담은 이 책이 등장한 지금, 이전과는 비교할 수 없을 정도로 쉽게 게임 개발을 시작할 수 있다.

실질적인 접근을 취하는 이 책은 유니티를 이용한 개발에 들어가기 전에, 먼저 3D 게임 개발의 주요 개념을 소개한다. 그 다음 간단한 게임 디자인의 프로토타입을 거쳐, 본격적으로 더 큰 규모의 게임 개발로 들어간다. 이 과정에서 3D 월드 제작, 스크립팅, 게임 메카닉 구현과 같이 게임 개발의 필수 요소를 다룬다.

이 책은 따라하기 쉬운 실전 예제로 구성되며, 이 예제들이 모여서 상호작용이 가능한 배경에서 펼쳐지는 1인칭 3D 게임으로 만들어진다. 유니티를 이용해 캐릭터가 배경과 상호작용하게 만들고, 게임에서 승리하기 위해 필요한 문제를 플레이어에게 제시한다. 이처럼 게임과 3D 컨텐츠 제작의 공통적인 개념을 주로 소개하기 때문에 이 책에서 다룬 내용은 다른 유형의 게임에도 적용될 수 있다. 이 책의 말미에 이르면 완전히 작동하는 3D 게임과 향후 그 게임을 발전시켜 플레이어에게 최상의 경험을 제공하는 데 필요한 모든 기술을 갖추게 된다. 이제 곧 쉽고 편하게 자신만의 3D 게임과 인터랙티브한 경험을 만들게 될 것이다.


[ 저자 소개 ]

윌 골드스톤 (Will Goldstone)
초창기부터 활동한 유니티 커뮤니티의 멤버인 윌 골드스톤은 유니티 테크놀로지에서 기술지원 부책임자로 일하며 교육용 컨텐츠, 마케팅, 커뮤니티 관리 및 개발 지원 업무를 맡고 있다. 창의적 교육학(Creative Education) 석사 학위와 다년간의 고등 교육 강의 경력을 보유한 골드스톤은 최초의 유니티 서적인 『Unity Game Development Essentials』를 집필했고, 유니티 테크놀로지 외부에서 최초로 비디오 튜토리얼을 만들었다. 자신의 웹사이트인 http://www.unity3dstudent.com을 통해서 지속적으로 새로운 사용자에게 유니티 커뮤니티를 소개한다. 블로그인 http://willgoldstone.com에도 이따금 글을 올린다.


[ 옮긴이의 말 ]

게임 시장과 개발 환경의 변화, 그리고 무엇보다 개발의 민주화를 표방한 정책으로 인해, 유니티는 빠른 속도로 주요 게임 엔진의 하나로 자리 잡고 있다. 이에 맞춰 관련 서적이 연이어 출간되면서, 유니티를 다룬 서적도 입문서를 중심으로 수준별, 분야별, 플랫폼별로 다양성을 갖추기 시작했다. 이들 서적 대부분은 실무에서 유니티를 사용하는 개발자가 집필한 것이다. 개발자는 실무를 통해서 누구보다 심층적으로 유니티를 다루는 위치에 있다. 또한 유니티의 짧은 역사를 감안할 때, 개발자를 제외하고는 딱히 전문적 차원에서 유니티를 설명할 수 있는 사람이 없는 것도 사실이다. 이런 의미에서 개발자에 의한 유니티 개발서 집필은 당연하면서도 불가피하다.

그렇다면 개발자로서의 경험과 지식이 풍부할수록 더 좋은 책을 쓸 수 있을까? 이 질문은 단정적으로 답하기 어렵다. 냉정히 말하면 개발자로서의 역량은 필요 조건에 가깝다. 무엇을 아는 것과 다른 사람에게 그것을 전달하는 것은 별개의 일이기 때문이다. 스포츠에서 스타 선수가 반드시 명 감독이 되는 것은 아니듯이, 좋은 개발자가 좋은 선생님 또는 좋은 저자를 의미하지는 않는다. 자신만의 비밀스러운 노하우와 고급 기술을 일방적으로 전달한다고 해서 좋은 개발 서적이 되는 것은 아니다. 독자가 책을 통해 기존의 지식을 정리하고, 새로운 내용을 이해하며, 이를 통해 다음 단계로 올라설 수 없다면, 개발 서적으로서의 가치는 그리 높다고 할 수 없다. 특히 초보자를 위한 입문서의 경우는 독자의 수준과 관점을 고려해서 적절한 내용과 예시를 선별하고, 기본 원리와 활용을 연결하며, 향후 발전의 여지를 남겨 놓는 세심한 접근이 요구된다. 독자에 대한 이러한 배려는 개발에서의 경험과 지식으로는 충족될 수 없는 부분이다. 누군가에게 무엇을 설명하고 가르치겠다는 뚜렷한 목표를 갖고 접근할 때 얻을 수 있는 부분이다.

이 책을 쓴 윌 골드스톤이 얼마나 유능한 개발자인지는 알 수 없다. 그러나 경력을 보면, 그가 유니티를 가르치고 보급하는 데 뚜렷한 목표를 갖고 있었다는 사실을 알 수 있다. 일찍부터 대학에서 유니티를 강의했고, 관련된 책을 최초로 집필했으며, 유니티 테크놀로지 사 외부에서 최초로 비디오 튜토리얼을 만들어 공개했다. 그리고 현재는 이러한 경력을 바탕으로 유니티 테크놀로지사에서 교육 관련 업무를 담당하고 있다. 실제로 번역 과정에서 주고 받았던 서신을 통해서 이 책과 유니티 교육에 대한 그의 진지함과 열정을 엿볼 수 있었다.

이 책은 그가 유니티 3.x 버전에 맞게 새롭게 고쳐 쓴 초보자를 위한 유니티 입문서다. C#과 자바스크립트를 함께 다룰 정도로 철저히 초보자의 관점에서 유니티의 모든 기능에 접근한다. 그러면서도 3D의 기본 개념에서부터, 유니티 핵심 기능 활용과 실제 게임 메카닉의 구현, 나아가 게임 빌드와 배포에 관련된 내용까지를 포괄적이며 체계적으로 다룬다. 예제 코드나 완성된 프로젝트를 따로 제공하지 않는다는 점이 다소 불편할 수 있다. 그러나 이 역시 초보자의 집중을 유도하기 위한 저자의 의도라 생각한다. 한 권의 책으로 유니티를 완전히 설명할 수는 없다. 그러나 유니티를 시작하기 위해 한 권의 책을 골라야 한다면, 이 책을 추천하고 싶다. 이 책의 번역이 독자 제현과 유니티 간의 긴 인연의 좋은 시작이 될 수 있기를 희망한다.


[ 옮긴이 소개 ]

조형재
서울대학교 미술대학을 거쳐, KAIST 문화기술대학원에서 게임 네러티브에 관한 연구로 석사 학위를 받았다. 3D 애니메이션 스튜디오를 거쳐 주로 게임 개발사에서 근무했으며, 구체적인 약력은 개인 홈페이지(www.zorotoss.com)에서 확인할 수 있다. 2012년 현재는 온라인 게임 개발사에 근무하고 있으며, 경원대학교에서 유니티 엔진 강의를 맡고 있다. 역서로는 에이콘출판사의 『Unity 3D Game Development by Example 한국어판』, 『유니티 3D 모바일 게임 아트』, 『Unity 3 Blueprint 한국어판』, 『Unity 3 Game Development Hotshot 한국어판』이 있다.

목차

목차
  • 1장 3D 세계로의 입문
    • 3D에 대한 기본적 이해
      • 좌표계
      • 로컬 공간과 월드 공간
      • 벡터
      • 카메라
        • 프로젝션 모드: 3D 대 2D
      • 폴리곤, 에지, 버텍스, 메쉬
      • 재질, 텍스처, 셰이더
    • 리지드바디 다이나믹스
      • 충돌 감지
    • 유니티의 주요 개념
      • 유니티적 방식
      • 애셋
      • 게임오브젝트
      • 컴포넌트
      • 스크립트
      • 프리팹
    • 인터페이스
      • 씬 뷰와 계층 패널
        • 컨트롤 도구
        • 비행모드
        • 컨트롤 바
        • 검색 상자
        • Create 버튼
      • 인스펙터
      • 프로젝트 패널
      • 게임 뷰
    • 요약
  • 2장 프로토타이핑과 기본 스크립팅
    • 첫 유니티 프로젝트
    • 기본 프로토타이핑 환경
      • 씬 세팅
      • 라이팅 추가
      • 벽 만들기
        • 원본 벽돌 만들기
        • 스냅 기능
        • 빈 게임오브젝트를 이용한 그룹과 복사
      • 벽돌 벽과 게임 메카닉
        • 시점 설정
    • 스크립팅
      • behavior 스크립트 또는 class
      • C# 스크립트의 구조
        • 기본 함수
        • C#에서의 변수
      • 자바스크립트의 구조
        • 자바스크립트에서의 변수
        • 주석
      • 공격
      • 퍼블릭 변수 선언
        • 스크립트 지정
        • 카메라 이동
        • 지역, 프라이빗, 퍼블릭 변수
    • Translate 의 이해
      • Translate 적용
    • 게임 테스트
      • 발사체 제작
        • 발사체 프리팹 제작
        • 재질의 생성과 적용
        • 물리와 리지드바디 적용
    • 프리팹으로 저장하기
      • 발사체 발사
    • Instantiate()를 이용한 오브젝트 생성
      • 리지드바디에 힘 추가
    • 요약
  • 3장 배경 제작
    • 게임 디자인
    • 지형 편집기
      • Terrain 메뉴
        • 하이트맵 불러오기와 내보내기
        • Set Resolution
        • Mass place trees
        • Flatten Heightmap
        • Refresh tree and detail prototypes
      • 지형 도구
        • Terrain (Script)
        • Raise height
        • Paint height
        • Smooth Height
        • Paint Texture
        • Place Trees
        • Paint Details
        • Terrain Settings
      • 지형 제작: 태양, 바다, 모래
        • 단계 1: 지형 설정
        • 단계 2: 섬 형태 잡기
        • 단계 3: 화산
        • 단계 4: 텍스처 적용
        • 단계 5: 나무
        • 단계 6: 잔디
        • 단계 7: 라이팅
        • 단계 8: 사운드
        • 단계 9: 스카이박스
        • 단계 10: 바다
        • 단계 11: 탐색
        • 단계 12: 수정
    • 요약
  • 4장 플레이어 캐릭터와 스크립팅
    • 인스펙터를 이용한 작업
      • 태그
      • 레이어
      • 프리팹과 인스펙터
    • 캐릭터의 구조
    • First Person Controller 오브젝트 분석
      • 부모 자식 관계의 문제
      • First Person Controller 오브젝트
        • 오브젝트 1 : First Person Controller (부모)
        • 오브젝트 2: Graphics (자식)
        • 오브젝트 3: Main Camera(자식)
    • 스크립팅 심화
      • 커맨드
      • 변수
        • 변수 데이터 타입
        • 변수 사용
    • 예제
      • 함수
        • Update()
        • OnMouseDown()
      • 커스텀 함수 작성
        • 반환 타입
        • 인자
      • 커스텀 함수 선언
        • 커스텀 함수 호출
      • If else 선언문
      • 다중 조건
        • For 루프
    • 스크립트 간의 호출과 닷 문법
      • 다른 오브젝트 접근
      • Find()와 FindWithTag()
      • SendMessage
      • GetComponent
        • 모바일 프로그래밍
        • 닷 문법
      • 주석
        • 추가 자료
    • 캐릭터 이동을 위한 스크립팅
      • 스크립트 분석
        • 전체 스크립트(자바스크립트)
      • 변수 선언
        • 이동 정보 저장
        • 캐릭터 이동
        • 지면과의 접촉 확인
        • @script 커맨드
    • 요약
  • 5장 상호작용
    • 외부 모델링 패키지
      • 모델 불러오기 설정
      • 메쉬
      • 노멀과 탄젠트
      • 재질
      • 애니메이션
      • 애니메이션 압축
    • 초소 모델 설정
    • 초소 모델 추가
      • 위치
      • 회전
      • 충돌체 추가
      • 리지드바디 추가
      • 오디오 추가
      • 자동 애니메이션 비활성화
    • 충돌과 트리거
    • 레이캐스팅
      • 프레임 간의 계산 문제
      • 충돌 예측
    • 초소 문 열기
      • 접근 1: 충돌 감지
        • 새로운 애셋 제작
        • 캐릭터 충돌 감지 스크립팅
      • 접근 2: 레이캐스팅
        • 주석 처리를 통한 충돌 감지 비활성화
        • 코드 이동: DoorManager 스크립트
        • PlayerCollisions 스크립트 정리
        • 가상선 그리기
        • 충돌체 초기화
      • 접근 3: 트리거 충돌체 감지
        • 트리거 영역의 생성과 조정
        • 트리거 충돌체 스크립팅
    • 요약
  • 6장 수집, 인벤토리, HUD
    • 전지 프리팹 제작
      • 내려받기, 불러오기, 배치
      • 전지 태그 작업
      • 충돌체의 크기와 회전
        • 전지 확대
        • 트리거 충돌체 추가
        • 충돌체 크기
      • 리지드바디 추가
      • 전지 스크립트
        • 회전 효과
      • 트리거 충돌체 감지 추가
    • 전지 배치
    • 플레이어 인벤토리 스크립트
      • 충전 값 저장
        • 변수 초기 값 설정
        • 오디오 피드백
      • CellPickup() 함수 추가
        • 플레이어에 인벤토리 추가
    • 초소 접근 제한
      • 전지 개수를 이용한 접근 제한
    • 전지 HUD
      • GUItexture 불러오기 설정
      • GUITexture 오브젝트 생성
      • PowerGUI 텍스처 배치
      • 텍스처 교체 스크립팅
      • 배열의 이해
        • HUD 배열 추가
        • HUD 배열에 텍스처 지정
        • HUD 비활성화
        • HUD의 런타임 활성화
        • 발전기 추가
      • 문 잠금 상태 표시
        • 라이트 추가
        • 라이트 색상 변경과 HUD 제거
    • 플레이어를 위한 단서
      • GUIText를 이용한 텍스트
        • GUIText 스크립팅
        • 진행 상황을 보여주는 단서
        • 폰트의 사용
    • 요약
  • 7장 인스턴스 생성과 리지드바디
    • 인스턴스 생성의 활용
    • 리지드바디
      • 포스
      • 리지드바디 컴포넌트
    • 미니 게임 제작
      • 코코넛 프리팹
        • 코코넛 텍스처
        • 물리 효과 적용
        • 프리팹으로 저장
      • 발사 지점
      • 코코넛 발사 스크립트
        • 입력 확인
        • 피드백 사운드 재생
        • 코코넛 인스턴스 생성
        • 인스턴스 이름 짓기
        • 속도 지정
        • 개발 안전장치
      • 최종 점검
      • 인스턴스 생성의 제한과 오브젝트 정리
        • 코코넛 던지기 활성화
      • 코코넛 던지기 훈련장
        • 불러오기 설정
        • 코코넛 제거
        • 배치
        • 자동 애니메이션 비활성화
        • 움직이는 부분에 리지드바디 추가
        • 코코넛 충돌 감지 스크립트
        • 스크립트 지정
        • 추가 표적 배치
      • 승리 조건
        • 변수 선언
        • 승리 조건 확인
        • 스크립트 지정.
        • 적중된 표적 개수 관리
      • 마무리
        • 크로스헤어 추가
        • 메시지 전달
    • 요약
  • 8장 파티클 시스템
    • 파티클 시스템
      • 파티클 이미터
      • 파티클 애니메이터
      • 파티클 렌더러
    • 퀘스트 제작
      • 관련 애셋
      • 모닥불 모델 추가
      • 모닥불 파티클 시스템
        • 불 효과
        • 타원형 파티클 이미터 설정
        • 연기 효과
        • 음향 효과 추가
      • 모닥불 지피기
        • 성냥 추가
        • 성냥 GUI
        • 성냥 수집
        • 모닥불 지피기
    • 테스트
      • 문제점
        • 추가 조건을 통한 안전 장치
    • 요약
  • 9장 메뉴 디자인
    • 인터페이스와 메뉴
      • 씬 생성
        • 섬 복사
        • GUI를 위한 텍스처 설정
        • 게임 타이틀 추가
    • GUITexture와 마우스 이벤트를 이용한 메뉴 제작
      • 시작 버튼 추가
      • GUITexture 버튼 스크립트
      • 씬 불러오기
      • 퍼블릭 변수 지정
      • 버튼 테스트
      • 안내 버튼 추가
      • 나가기 버튼 추가
      • Debug 커맨드
    • Unity GUI 클래스와 GUI 스킨을 이용한 메뉴 제작
      • 게임오브젝트 비활성화
      • 메뉴 제작
        • 퍼블릭 변수 선언
        • OnGUI() 함수
        • GUI 요소 배치
        • GUI 스킨을 이용한 스타일링
        • GUI 버튼 배경
        • GUI 버튼의 폰트 크기
        • 버튼 기능 스크립팅
        • 안내 페이지 추가
    • 요약
  • 10장 애니메이션의 기초
    • 승리 시퀀스
      • 승리 시퀀스 제작 방식
      • 승리
      • 승리 메시지 제작
        • GUI 요소 배치
        • GUITexture 그룹화
      • Lerp를 이용한 애니메이션
        • 애니메이션 수정
        • 승리 시퀀스 저장
      • Win 오브젝트 생성
      • 페이더와 애니메이션 창
        • 다양한 해상도에 따른 크기 변경
        • 페이더 애니메이션
        • 애니메이션 패널
        • 애니메이션 클립 생성
        • 키프레임 만들기
        • 애니메이션 커브
        • 애니메이션 이벤트 추가
        • 로딩 GUI
        • 애니메이션 이벤트로 씬 불러오기
        • 로딩 GUI의 저장과 인스턴스 생성
      • 승리 시퀀스 불러오기
      • GUITexture 레이어링
      • 도전 과제: 페이드 인
    • 요약
  • 11장 최적화와 최종 다듬기
    • 지형 다듬기와 플레이어 위치
      • 지형 다듬기
        • 나무 배치
      • 언덕, 골짜기, 텍스처 블랜딩
        • 해변
    • 플레이어 배치
    • 최적화
      • 카메라 클리핑 플레인과 안개
      • 라이트매핑
        • 섬의 라이트매핑
        • 라이트매핑 준비
        • 라이트맵 굽기
        • 동적 오브젝트 복구
    • 최종 다듬기
      • 화산!
        • 파티클 시스템 배치
        • 연기 재질
        • 파티클 시스템 설정
        • 음향 효과 추가
        • 화산 테스트
      • 코코넛 트레일
        • 프리팹 편집
        • 트레일 렌러더 컴포넌트
        • 프리팹 업데이트
    • 요약
  • 12장 게임 빌딩과 공유
    • 빌드 옵션
      • 웹 플레이어
        • 웹 플레이어 스트림드
      • PC 또는 Mac 스탠드얼론
      • Mac OSX 대시보드 위젯
    • 빌드 세팅
    • 플레이어 세팅
      • 크로스 플랫폼 세팅
      • 플랫폼별 세팅
    • 품질 세팅
    • 플레이어 입력 세팅
    • 게임 빌드
      • 웹 빌드를 위한 수정
        • 플랫폼에 따른 나가기 버튼 처리
        • 스트리밍 준비
      • 첫 빌드
        • 스탠드얼론 빌드
        • 무료 버전과 프로 버전
      • 웹 빌드
        • 웹 빌드의 임베딩
    • 공유
      • Kongregate.com
    • 요약
  • 13장 테스트와 향후 개발
    • 경험을 통한 학습
    • 테스트와 마무리
      • 공개 테스트
        • 프레임 레이트 피드백
        • 성능 최적화
    • 향후 학습을 위한 자세
      • 가급적 많은 베이스를 커버하라.
      • 바퀴를 다시 발명할 필요는 없다.
      • 모르면 물어라!

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

[ p8 두 번째 문단 1행 ]
실혐을 → 심혈을

[ p8 15행 ]
설명 부모가 →설령 부모가