Top

C#으로 하는 유니티 게임 개발

  • 원서명Learning C# by Developing Games with Unity 3D Beginner's Guide (ISBN 9781849696586)
  • 지은이테리 노턴
  • 옮긴이이유찬
  • ISBN : 9788960775770
  • 30,000원
  • 2014년 06월 30일 펴냄 (절판)
  • 페이퍼백 | 344쪽 | 188*235mm
  • 시리즈 : acorn+PACKT, 게임 개발 프로그래밍

판매처

  • 현재 이 도서는 구매할 수 없습니다.

책 소개

요약

이 책은 프로그래밍에 대한 개념이 없는 사람들을 대상으로 한다. 기존의 프로그래밍 서적이 이해하기 어려운 용어와 문장으로 설명을 하기 때문에 처음 프로그래밍을 시작하는, 특히 게임을 만들어보고자 하는 사람들을 쉽게 질리게 한다. 그러나 이 책은 우리 주변에서 쉽게 볼 수 있는 간단한 예제를 사용해 프로그래밍의 기본 개념을 설명한다. 기존의 프로그래밍 서적에서 설명하는 방법과는 사뭇 달라서 처음에는 익숙하지 않을 수 있지만, 저자가 선별한 예제들을 맛깔스러운 설명과 함께 한 단계씩 따라가다 보면, 어느덧 C#의 기본 개념들을 익히게 될 것이다. 또한 이 책은 특정 게임을 개발하기 위한 기술보다는 하나의 게임이 완성되기까지 각 단계들이 어떻게 서로 연결되고 함께 동작하는지를 설명한다. 즉 게임을 구성하기 위한 큰 그림을 익히는 데 중점을 두고 있다. 마지막으로 게임을 제어하는 데 반드시 필요한 스테이트 머신(state machine)의 개념을 설명하고, 이 개념을 사용해 직접 게임을 제어하는 방법도 상세히 설명하고 있다. C#에 대해서도 그리고 유니티에 대해서도 전문 지식이 없는 초보 게임 개발자들에게는 더할 나위 없이 친절한 게임 입문서라고 할 수 있다.

이 책에서 다루는 내용

■ 변수의 개념과 동작 원리
■ 메소드와 함수의 개념과 정보 처리를 위한 메소드와 함수 사용법
■ 객체, GameObject 컴포넌트, 클래스의 개념
■ 닷 신택스를 이용한 객체들 간의 통신
■ 코드에서 결정(decision)을 수행하는 방법
■ 유니티 프로젝트를 컨트롤하고 구성하기 위한 스테이트 머신(State Machine) 사용법
■ GameObject를 다루기 위한 스크립트 레퍼런스
■ 유니티 물리 엔진을 사용하여 GameObject 충돌과 트리거를 감지하고 이동하는 방법
■ 게임 화면에 정보 표시하는 방법

이 책의 대상 독자

일반적인 프로그래밍이나 스크립트 작성은 물론이고, 어디서부터 시작해야 할지조차 모르겠다면, 이 책을 집어 든 건 최선의 선택이다. 게임을 만들어보고 싶거나 C# 스크립트나 코드 작성 방법을 배워야 하는 독자들에게 이 책은 좋은 안내서가 될 것이다.

이 책의 구성

1장, 숨겨진 스크립트 기술의 발견: 여러분이 스크립트를 작성할 때 잠재적으로 느끼는 공포심을 극복하는 방법을 설명한다. 스크립트를 작성하는 일은 일상생활과 비슷할 정도로 매우 쉬운 작업임을 알게 된다. 또한 유니티의 스크립트 문서를 살펴볼 것이다. 마지막으로, 유니티에서 C# 스크립트를 생성하는 방법도 배워본다.

2장, 유니티 스크립트의 빌딩 블록 소개: 코드를 작성할 때 필요한 두 가지 중요한 빌딩 블록인 변수와 메소드에 대해 설명한다. 2장에서는 변수와 메소드의 개념을 소개한다. 이 2개의 빌딩 블록을 사용해 유니티 컴포넌트에서 사용하는 변수와 메소드의 컨테이너(container)인 ‘클래스’의 개념을 이해할 수 있다. 마지막으로, 닷 신택스(Dot Syntax)를 소개하면서 GameObjects 간의 통신을 설명한다.

3장, 변수의 자세한 활용: 변수를 사용하는 방법을 좀 더 자세하게 설명한다. 데이터를 저장하는 데 변수를 사용하는 방법과, 유니티의 Inspector 패널에 나타나는 컴포넌트 속성(Component properties)으로 변수를 변환하는 방법도 소개한다.

4장, 메소드의 활용: 메소드가 어떻게 GameObjects에 있는 액션(action)을 수행하는지 설명한다. 메소드를 생성하고 사용하는 방법을 좀 더 자세하게 배우게 된다. 또한 유니티에서 가장 자주 사용하는 메소드인 Start() 메소드와 Update() 메소드에 대해서도 알아본다.

5장, 코드에서 조건 결정하기: 게임을 진행하는 동안 수없이 이뤄지는 조건 결정(decision)에 대해 설명한다. 이러한 결정은 일상생활 속에서 하는 결정과 비슷하다. 코드에서 결정을 내리는 여러 가지 방법을 알아보고, 각 방법이 필요한 일반적인 이유도 알아보자.

6장, 객체 통신을 위한 닷 신택스의 사용: 닷 신택스는 사실, 다른 컴포넌트에게 정보를 전달하거나 다른 컴포넌트로부터 정보를 수신하는 간단한 주소(address) 포맷임을 알아본다.

7장, 게임의 한 부분으로 게임플레이 생성하기: 게임플레이(gameplay)를 개발하는 일은 분명 재밌는 작업이지만, 완벽하게 동작하는 게임을 만들려면 여러 파트가 필요하다는 사실을 배우게 된다. 필요한 파트들 중 일부를 살펴보고 스테이트 머신(state machine)을 소개함으로써 모든 파트를 구조화하는 방법을 알아본다.

8장, 스테이트 머신 개발: 간단한 스테이트 머신을 만들어서 스테이트 머신이 어떻게 동작하는지 알아보고, 스테이트 머신을 통해 게임을 제어하는 간단한 방법을 소개한다. 멀티 레벨 게임에서 씬(scene)이 어떻게 변하는지 그리고 다른 씬으로 변할 때 GameObject를 어떻게 처리해야 하는지도 알아본다.

9장, 게임 구축과 기본 구조 실행: 유니티의 스크립트 레퍼런스와 원하는 기능을 찾아볼 수 있는 레퍼런스 메뉴얼을 액세스하고 사용하는 방법을 알려준다. 그러고 나서 스테이트 머신과 3개의 씬을 사용하는 멀티 레벨 게임을 만들어본다. GameObject의 플레이어(player)를 추가하고 플레이어를 제어하는 방법도 살펴볼 것이다.

10장, 움직임, 충돌 그리고 스코어 보관: 유니티의 물리 시스템을 사용해 플레이어를 움직이는 방법과 플레이어의 움직임을 카메라가 어떻게 따라가는지를 설명한다. GUI 스코어 시스템을 개발하고 적(enemy) 객체에게 총을 쏘는 기능, 그리고 어떻게 게임에서 이기고 지는가에 대해 설명한다. 궁극적으로, 분리되어 있는 모든 코드 조각이 어떻게 하나로 합쳐져서 동작하는지를 알아보자.

11장, 새로운 코드 기술 요약: C#으로 프로그래밍하고 객체를 사용해 작업하는 데 필요한 핵심사항들을 되짚어본다. C#의 기본을 이해하기 위해 배우려고 하는 C#과 유니티 기능에 대해 설명한다. 유니티 프로젝트에 스테이트 머신을 함께 사용할 때의 장점에 대해서도 강조해 설명한다. 마지막으로, 좀 더 배우고자 하는 이들에게 유용할 참고자료를 제공한다.

부록 A, 초기 스테이트 머신 파일: 게임에서 스테이트를 변경하는 데 필요한 클래스의 초기 코드를 보여준다. 이 스테이트 머신 클래스는 게임 코드를 구성하고 추가하기 위한 출발점이다.

부록 B, 9장과 10장의 완성된 코드 파일: 완벽한 게임을 플레이하기 위해 사용되는 모든 클래스와 스크립트 파일을 담고 있다.

저자/역자 소개

저자 서문

유니티는 아마추어나 취미로 게임을 개발하는 개발자부터 스튜디오에서 전문적으로 개발하는 개발자까지 게임 개발자에게 가장 대중화된 게임 엔진 중의 하나가 됐다. 많은 이들이 유니티가 3D 전용 툴이라고 생각하지만 유니티 4.3부터는 2D 툴도 포함됐다. 이런 점은 유니티의 사용이 점점 확대되고 있음을 뜻한다.
개발자들은 객체 지향적인 드래그앤드롭(drag-and-drop) 사용자 인터페이스를 좋아하며, 이러한 방식을 사용하면 게임이나 인터랙티브 제품을 상당히 쉽게 만들 수 있다. 유니티를 사용해 비주얼 작업을 쉽게 할 수 있지만 GameObject의 스크립트를 작성하기 위해서는 기본적인 프로그래밍 지식에 대한 이해가 필요하다. 어떤 프로그래밍 언어든 프로그래밍 언어에 대한 지식을 갖춘 개발자는 스크립트를 작성하는 방법을 배우기가 상당히 쉽다. 유니티를 시작하는 아티스트들에게 게임의 비주얼한 부분을 만드는 일은 쉬울지 몰라도 스크립트를 작성하는 일은 거대한 장애물 앞에 서 있는 듯한 느낌이 들게 한다.
이 책은 프로그래밍에 대한 개념이 없는 사람들을 대상으로 한다. 빌딩 블록(building block)을 소개하고, 주변에서 쉽게 볼 수 있는 예제를 사용해 프로그래밍의 기본 개념을 설명한다. 물론 이러한 학습 방법이 일반적인 프로그래밍 서적에서 사용하는 방법은 아니다. 종국에는 C#의 기본 개념들을 익히게 되겠지만 여러분이 필요로 하는 자세한 부분에 대해서는 한 단계, 한 단계 자세하게 설명하겠다. 각 단계를 통해 간단한 게임을 만들어보고 게임 자체에 초점을 맞추기보다는 서로 분리되어 있는 많은 코드가 모여서 어떻게 하나의 게임으로 동작하는지를 배우기 바란다. 또한 간단한 게임 제어 블록으로 코드를 구조화할 수 있는 스테이트 머신(state machine)도 소개하겠다. 이 책을 끝내고 나면 아마도 “와우, 게임을 만드는 일이 이렇게 쉽다니 믿을 수가 없어!”라고 말할 것이라고 확신한다.

저자 소개

테리 노턴(Terry Norton)

캘리포니아에서 태어나고 자랐다. 베트남 전쟁 시기에는 6년 반을 미국 공군으로 복무했다. 군 복무 중에 전자 계측 장치를 다루기 위해 전자공학을 공부했다. 군 제대 후 전자공학 학위를 받았고 나중에 버몬트에 있는 조슬린 디펜스 시스템(Joslyn Defense Systems)에서 미국 해군의 테스트 장비 설계와 개발 업무를 했다.
개인 컴퓨터가 세상에 등장했을 때 컴퓨터 제작에 관심이 많았지만 프로그래밍을 깊게 공부하진 않았다. 2004년까지는 프로그래밍은 그의 관심 밖이었다. 2004년도에 들어서 OS/2 매거진에 C++ 프로그래밍 강좌에 대한 글을 쓰기 시작했다. 불행하게도 2005년에 스노보드를 타다 왼손을 다쳐서 집필을 접어야 했다.
IBM이 OS/2를 포기하자 테리는 2006년 초 애플 컴퓨터를 처음으로 구입했다. 오브젝티브C를 배우고자 여러 번 도전했었지만 다른 일과 가정 생활로 인해 오브젝티브C를 배우는 일이 쉽지만은 않았다. 2010년도에 유니티를 알게 되어 스크립트를 작성하고 드디어 프로그래밍 세계에 합류할 수 있었다. 그 이후 유니티스크립트(UnityScript)에 대해 ‘UnityScript for Noobs’라는 온라인 튜토리얼을 쓰기 시작했다. 이 튜토리얼은 2011년까지 유니티를 처음 접하는 개발자들에게 유용한 기본적인 가이드였다.
튜토리얼을 집필하면서 테리는 유니티에서 스크립트를 작성하기 위해 C#을 공부하기 시작했다. 팩트 출판사가 ‘UnityScript for Noobs’를 보고 테리에게 유니티스크립트 학습에 필요한 내용으로 집필할 생각이 없는지 의사를 타진했으나, 그는 거절했다. 테리가 생각하기에는 C#이 더 나은 언어였고 더 이상 유니티스크립트에는 관심이 없었다. 2주 후 팩트는 다시 유니티를 위한 C# 학습을 주제로 책을 집필할 것을 제안했고, 테리는 그 제안을 받아들였다.

옮긴이의 말

컴퓨터를 처음 접하는 사람들이 으레 해보는 프로그램이 바로 게임이다. 내가 처음 컴퓨터를 접했을 때도 가장 먼저 해본 것이 게임이었던 기억이 난다. 부모님 눈치를 보면서도 몰래 게임을 하며, 나중에 꼭 게임 개발자가 되리라고 미래의 모습을 꿈꾸곤 했다. 그 후 컴퓨터 공학을 전공하고 나서야, 게임 개발이 수많은 컴퓨터 기술의 집합체이고 한두 사람의 노력만으로는 불가능한 분야라는 사실을 깊이 깨달았다. 여러분이 주머니에 있는 스마트폰을 꺼내어 쉽게 플레이하는 모바일 게임조차도 수십, 수백 명의 개발자와 디자이너가 몇 달간 밤낮을 지새우며 개발한 그들의 피와 땀의 결실이다. 알고리즘, 자료구조, 프로그래밍 언어, 시나리오, 유저 인터페이스, 데이터베이스, 네트워크 등 온갖 컴퓨터 공학 전공 기술들의 집합체가 게임이라는 사실을 깨닫고 난 후 사실상 나는 게임 개발의 꿈을 포기했다.
이 책은 나처럼 게임을 좋아하고 자신만의 게임을 개발하고픈 마음이 가득한 사람들에게 마법처럼 쉽게 게임을 개발할 수 있도록 도와주는 책이다. 몇 번의 마우스 클릭만으로 화면에 둥둥 떠다니는 적군을 만들 수 있고, 두서너 줄의 스크립트만으로 총알을 발사할 수도 있다. 과거 비주얼 C++ 같은, 게임 개발에 많이 사용했던 프로그래밍 언어로 이와 같은 기능을 구현하려면 수백, 아니 수천 라인이 필요했다. 오늘날 우리가 정말 쉽고 간단하게 게임을 만들 수 있게 된 이유는 유니티와 C#덕분이다.
사실 이 책은 게임 개발을 위한 책이기도 하지만, 초보 개발자가 유니티와 C#을 익히는 데 도움을 주고자 하는 목적도 있다. 물론 이 책에서 소개한 유니티와 C#이 모든 게임을 전부 개발하게 해주는 만병통치약은 아니다. 단지 게임을 개발하는 과정과 고려해야 할 사항들을 C#이라는 프로그래밍 언어로 기술하고, 유니티라는 툴을 통해 구현하고 있을 뿐이다. 더 복잡하고 그래픽이 화려한 상용 게임들은 다른 툴과 언어, 그리고 더 많은 개발자와 디자이너의 협력으로 개발돼야 하겠지만, 초보자인 여러분에게는 C#과 유니티, 그리고 게임 개발 과정을 익히는 데 이 책이 도움이 되리라 믿는다.

옮긴이 소개

이 유 찬

중학교 때 처음 컴퓨터를 접하고 컴퓨터에 반쯤 미쳐 살다가 대학에서 컴퓨터 공학을 전공하면서 컴퓨터가 얼마나 어려운 분야인지 뼈저리게 깨달은 전형적인 전산쟁이다. 대학 졸업 후 현재까지 모 대기업 UX/UI 최적화 분야의 업무를 담당하고 있는 모바일 개발자이며, 틈틈이 게임을 즐기고 프로그래밍을 공부하는 늦깎이 프로그래머이기도 하다. 좋아하는 분야는 자바와 C#, C++ 같은 객체 지향 프로그래밍이며, 요즘은 자바 8에서 제공하는 람다(Lambda)에 푹 빠져 있다.

목차

목차
  • 1장 숨겨진 스크립트 기술의 발견
    • 이 책을 보는 데 필요한 사전지식
    • 스크립트 공포증의 해결
      • GameObject의 비헤비어에 대한 교육
    • UnityScript 대신에 C# 선택
      • C#을 선택한 이유 1: 인터넷상의 방대한 문서
      • C#을 선택한 이유 2: 유니티 스크립트와 일반적인 C# 코드 파일을 사용할 수 있는 유연성
      • C#을 선택한 이유 3: 특별한 코딩 규칙
    • 유니티의 문서
      • 이 모든 것을 알아야 하는가?
      • 여기서 보여주는 정보는?
    • C# 스크립트 파일로 작업하기
      • 모노디벨롭 코드 에디터의 소개
      • 모노디벨롭과 유니티 사이의 C# 파일 동기화
      • Watching for a possible "gotcha" when creating script files in Unity
      • 정상적으로 동작하지 않을 때의 수정
    • 정리

  • 2장 유니티 스크립트의 빌딩 블록 소개
    • 함수 대신에 메소드 사용하기
    • 스크립트에서 변수가 하는 역할에 대한 이해
      • 변수에 이름 붙이기
      • 변수의 이름은 단순히 값을 대체한다
    • 스크립트에서 메소드의 사용
      • 메소드란?
      • 이 스크립트 파일 안에 있는 것은 무엇인가?
      • 메소드의 이름도 코드를 대체한다
    • 클래스 소개
    • 유니티의 작은 마법을 사용하면 스크립트는 컴포넌트가 된다
      • 마법처럼 보이는 기술적인 것들
      • 그 밖의 유니티 마법
    • 닷 신택스를 사용한 컴포넌트 간의 통신
      • 닷이란?
    • 정리

  • 3장 변수의 자세한 활용
    • 적절한 C# 문장 작성
    • 유니티의 Inspector에 있는 컴포넌트 속성의 이해
      • 변수는 컴포넌트의 속성이 된다.
      • 유니티는 스크립트와 변수 이름을 약간 변경한다
      • Inspector 패널에서 속성 값 변경
    • Inspector 패널에서 public 변수 보기
    • 적절한 변수 이름 작성법
      • 소문자로 변수 이름 시작하기
      • 여러 단어로 변수 이름 정하기
    • 변수와 타입의 선언
      • 일반적인 내장 변수 타입
      • 변수를 어디에서 선언하는지가 중요하다
      • 변수 영역: 변수가 사용되는 위치를 결정한다
    • 정리

  • 4장 메소드의 활용
    • 중괄호를 사용한 메소드 정의
    • 스크립트에서의 메소드 사용
    • 적절한 메소드 이름 작성법
      • 대문자로 메소드 이름 시작하기
      • 여러 단어로 메소드 이름 정하기
      • 괄호도 메소드 이름의 한 부분이다
    • 적절한 메소드의 정의
      • 메소드를 정의하기 위한 최소한의 요구 조건
      • 괄호의 이해: 괄호가 필요한 이유
      • 메소드 매개변수의 설정
      • 메소드는 얼마나 많은 매개변수를 가질 수 있는가?
    • 메소드의 호출
      • 메소드의 괄호에서 인수 사용하기
    • 메소드로부터 값 리턴받기
      • 메소드 호출은 논리적인 우회다
    • 유니티의 Update()와 Start() 메소드 사용
      • Start() 메소드는 한 번만 호출된다
      • Update() 메소드는 반복해서 호출된다
    • 정리

  • 5장 코드에서 조건 결정하기
    • if 문을 사용한 조건 테스트
      • if 조건이 참인지 거짓인지 테스트
      • 조건을 변경하기 위한 NOT 오퍼레이터 사용
      • if 문에서 여러 조건 체크하기
    • 다른 코드를 실행하기 위한 if-else 문 사용
    • 사용자 입력에 따른 결정
    • 배열, List, Dictionary에 데이터 저장하기
      • 배열에 아이템 저장하기
      • List에 아이템 저장하기
      • Dictionary에 아이템 저장하기
      • 컬렉션 이니셜라이저를 사용해 List와 Dictionary에 아이템 추가하기
    • 배열, List, Dictionary 데이터에 루프 사용하기
      • foreach 루프
      • for 루프
      • while 루프
    • 정리

  • 6장 객체 통신을 위한 닷 신택스의 사용
    • 닷 신택스를 사용하는 것은 주소를 문자로 표기하는 것과 같다
      • 닷 신택스에서 닷은 단순화다
      • 변수와 메소드를 위한 액세스 지정자 사용하기
    • 객체를 사용해 작업한다는 것은 클래스의 액션을 의미한다
    • 스크립트에서 닷 신택스 사용하기
      • 컴포넌트의 변수와 메소드 액세스하기
      • 현재 GameObject의 다른 컴포넌트를 액세스하기
      • 다른 GameOjbect의 컴포넌트를 액세스하기
    • 드래그앤드롭을 사용하거나 코드를 작성해 GameObject 액세스하기
    • 정리

  • 7장 게임의 한 부분으로 게임플레이 생성하기
    • 스테이트 머신에 새로 배운 코딩 스킬 적용하기
    • 스테이트 머신의 개념 이해
      • 스테이트 머신을 사용했을 때의 장점
    • 스테이트 머신 로직 플로우
      • 게임 제어권을 스테이트에 위임하기
      • 원할 때 다른 스테이트로 스위칭하기
      • 액티브 스테이트를 계속 파악하기
    • 컴포넌트 객체와 C# 객체 생성하기
      • 유니티는 씬 뒤에서 컴포넌트를 생성한다
      • 객체를 생성하기 위해 클래스를 인스턴스화하기
    • C# 인터페이스 소개
      • 스테이트 머신과 보장된 인터페이스
    • 정리

  • 8장 스테이트 머신 개발
    • 4개의 스테이트 클래스 생성하기
    • StateManager 컨트롤러 셋업
      • 상속 예에 대한 학습
      • 다시 IStateBase 인터페이스 입력하기
      • 스테이트 추가하기
      • StateManager 클래스에 OnGUI 추가하기
    • 액티브 스테이트의 변경과 씬 제어
      • 게임 씬 멈춤
    • 씬 변경
      • 씬 변경은 기존의 GameObject를 소멸시킨다
      • 씬 변경하기
      • 클래스 코드 검증
    • 정리

  • 9장 게임 구축과 기본 구조 실행
    • 유니티의 스크립트 문서
      • 처음으로 유니티 레퍼런스 매뉴얼 읽기
      • 스크립트 레퍼런스에 있는 필요한 코드 예제 찾기
      • 스테이트 머신의 셋업과 플레이어 GameObject의 추가
      • StateManager의 재시작 메소드 호출
      • 플레이어 GameObject 추가
      • 스크립트에 게임 데이터 저장하기
      • 스플래시 화면 디스플레이
    • 플레이어 GameObject 제어
      • 플레이어의 색깔 옵션 추가
      • 플레이어의 생명 옵션 추가
    • 정리

  • 10장 움직임, 충돌 그리고 스코어 보관
    • 완성된 게임 보기
    • 첫 번째 플레이 스테이트에서 플레이 가능한 씬으로 스위칭하기
      • 코드를 사용해 Scene1 로드하기
    • 다른 뷰 옵션을 위한 카메라 추가
      • 새로운 카메라에 스크립트 연결하기
    • Rigidbody 물리를 사용한 플레이어의 이동
    • 게임을 진행하는 동안 스코어 보관하기
      • 스코어 시스템의 초기화
      • Scene1 플레이 스테이트에서 스코어 보관하기
      • 승리와 패배를 결정하기
    • 물체에 총 쏘기
      • EnergyPulse 한 발 쏘기
      • EnergyPulse를 연속으로 쏘기
      • EnergyPulse의 발사
      • EnergyPulse 객체 제어
    • 정리

  • 11장 새로운 코딩 기술 요약
    • 유니티 프로젝트의 코딩
      • 객체를 사용해 작업하기
    • C# 프로그래밍t의 서피스 스크래치
      • 더 많은 C# 기능 살펴보기
      • 더 많은 유니티 기능 살펴보기
    • 스테이트 머신으로 게임 제어하기
      • 스테이트 머신을 사용하는 것은 디자인 패턴의 선택이다
      • GameObject 레벨에서 스테이트 머신 사용하기
      • 작은 C# 코드 조각 사용하기
    • 이 책을 끝낸 후에 더 배워야 할 내용
      • C# 웹사이트 방문
      • 유니티 코딩 웹사이트 방문
    • 정리

  • 부록 A 초기 스테이트 머신 파일
    • BeginState
    • SetupState
    • PlayStateScene1_1
    • PlayStateScene1_2
    • WonStateScene1
    • LostStateScene1
    • PlayStateScene2
    • WonStateScene2
    • LostStateScene2
    • StateManager
    • IStateBase

  • 부록 B 9장과 10장의 완성된 코드 파일
    • BeginState
    • SetupState
    • PlayStateScene1_1
    • PlayStateScene1_2
    • WonStateScene1
    • LostStateScene1
    • PlayStateScene2
    • WonStateScene2
    • LostStateScene2
    • StateManager
    • PlayerControl
    • GameData
    • LookAtPlayer
    • FollowingPlayer
    • EnergyPulsePower
    • IStateBase

  • 부록 C 깜짝 퀴즈 정답
    • 1장, 숨겨진 스크립트 기술의 발견
    • 2장, 유니티 스크립트의 빌딩 블록 소개
    • 3장, 변수의 자세한 활용
    • 4장, 메소드의 활용
    • 5장, 코드에서 조건 결정하기
    • 6장, 객체 통신을 위한 닷 신택스의 사용
    • 7장, 게임의 한 부분으로 게임플레이 생성하기
    • 8장, 스테이트 머신 개발
    • 9장, 게임 구축과 기본 구조 실행
    • 10장, 움직임, 충돌 그리고 스코어 보관

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p71 : 12행]

기본적으로 private을 의미하는 public 지정자modifier는 없다.
[public 지정자가 없는 경우 기본적으로 private 지정자를 사용한 것으로 간주한다]

[p96 : 9행]

그러나 이것은 대우 단순한 작업이다.
[그러나 이것은 매우 단순한 작업이다.]

2015.2.27 수정사항

[p51 : 아래에서 7행]
Main Camera에서 LearningScript를 드래그한다.
->
Learning Script를 Main Camera로 드래그한다.