책소개
이 책은 유니티 6와 C# 스크립팅을 통해 게임 개발의 핵심 기술을 단계적으로 익힐 수 있도록 구성돼 있다.새로워진 렌더링 파이프라인과 UI 시스템, 강화된 멀티플레이어 기능, XR 및 멀티플랫폼 지원 등 최신 기능을 중심으로, 실습 예제를 통해 스크립트 작성과 응용 방법을 배운다.기초 개념에서부터 비동기 처리, 인공지능, 네트워크, XR까지 폭넓게 다루며, 유니티를 처음 배우는 입문자와 최신 기능을 빠르게 익히려는 개발자 모두에게 유용한 참고 서적이 될 것이다.
저자소개
유니티와 C# 프로그래밍 분야에서 풍부한 경험을 갖춘 숙련된 게임 개발자다. 올드 도미니언 대학교(Old Dominion University), 윌리엄 앤 매리 대학(College of William and Mary), 피닉스 대학교 - 실리콘 밸리(University of Phoenix -Silicon Valley) 등 다양한 교육 기관에서 학습하며 실력을 다졌다. 인디 게임에서부터 대규모 프로젝트에 이르기까지 다양한 분야의 프로젝트에 참여했으며, 예비 개발자들이 실력을 향상시킬 수 있도록 수많은 기술 관련 글과 튜토리얼을 집필해왔다. 교육과 지식 공유를 추구하는 그의 열정은 게임 개발 커뮤니티에 활발히 기여해온 지금까지의 노력에서 쉽게 엿볼 수 있다.
목차
1부 기본 개념1장. 유니티와 C# 시작하기 - 게임 오브젝트 및 컴포넌트 __기술적 요구 사항__유니티 인터페이스 개요____유니티 설치하기____장기 지원 버전과 명명 규칙 이해하기__유니티 에디터 살펴보기____유니티 에디터 자세히 살펴보기__C# 스크립트 생성하기__C# 기본 개념____창의적인 게임 개발을 위한 C# 데이터 타입 활용하기____클래스 살펴보기__요약2장. 첫 번째 유니티 프로젝트 만들기 - 씬 및 애셋 마스터하기 __유니티에서 새 프로젝트 생성하기____유니티 프로젝트 개요____프로젝트 생성을 위한 단계별 가이드____프로젝트 설정 및 구성 개요__유니티 에디터 인터페이스 살펴보기____유니티 에디터의 레이아웃 이해하기____뷰/창 살펴보기(씬, 게임, 하이어라키, 프로젝트, 인스펙터)____씬 뷰____게임 뷰____하이어라키 창____프로젝트 창____인스펙터 창____작업 공간 맞춤 설정__애셋 임포트 및 관리____애셋 임포트 기초____폴더와 명명 규칙을 활용한 애셋 정리____애셋 관리 모범 사례(효율성 및 정리)__게임 오브젝트 조작 기초____게임 오브젝트 및 컴포넌트 소개____기본 2D/3D 오브젝트 생성 및 구성____물체 변환(위치, 회전, 스케일)____프리팹 - 재사용 가능한 애셋의 생성 및 활용__첫 번째 씬 준비하기____씬 환경 설정하기____씬과 기본 레이아웃에 오브젝트 추가하기____씬 조명 및 카메라 설정__요약3장. 유니티에서의 C# 기초 - 변수, 루프, 문제 해결 기법 __기술적 요구 사항__C# 구문 개요____C# 프로그램의 기본 구조____클래스 수준 변수와 메서드 변수의 차이점__변수와 데이터 타입____변수와 데이터 타입 이해하기____C#의 메모리 관리 - 스택과 힙____기본 타입____구조체 - 사용자 정의 값 타입____열거형____클래스 - 사용자 정의 참조 타입____문자열 - 연속된 문자____배열 - 단일 타입을 가진 항목들의 집합____델리게이트 - 메서드에 대한 참조__C#의 제어문____제어문 소개____루프 구조____점프 구문____모범 사례__기본 함수 작성하기____C# 함수 소개____함수 매개변수와 반환 타입 - 매개변수에 대한 자세한 설명____반환 타입 살펴보기____함수 오버로딩__유니티 전용 함수 살펴보기____모범 사례__C# 스크립트 디버깅하기____유니티의 디버깅 소개____유니티 콘솔 창 이해하기____유니티 스크립트의 일반적인 오류____디버깅 기법____모범 사례__요약4장. 유니티 스크립트 구조 살펴보기 __기술적 요구 사항____하드웨어 요구 사항____소프트웨어 요구 사항__MonoBehaviour 이해하기____MonoBehaviour 이해하기 - 유니티 스크립팅의 핵심____게임 오브젝트 동작을 정의하기 위해 MonoBehaviour 스크립트 연결하기____일반적인 MonoBehaviour 메서드 살펴보기__유니티의 수명주기 및 이벤트 순서 살펴보기____유니티의 초기화 메서드 살펴보기____유니티의 게임 루프 이해하기____유니티의 정리 주기 살펴보기__사용자 입력에 반응하기____유니티 입력 시스템 소개____움직임 제작하기 - 기본적인 플레이어 이동 기능 만들기____호환성 향상시키기 - 터치 및 마우스 입력 통합하기____효율적인 처리와 코드 최적화를 위한 전략__스크립트 통신____스크립트 간 상호작용 - 게임 설계에 필수 요소____스크립트 연결하기 - public 변수 및 접근자 활용____유니티의 SendMessage와 BroadcastMessage 마스터하기____유니티 스크립트에 이벤트와 델리게이트 활용하기____싱글톤 패턴 활용하기__요약2부 중급 개념5장. 유니티 API 마스터하기 - 물리, 충돌, 환경 상호작용 기법 __기술적 요구 사항__게임 컴포넌트에 접근하기____유니티의 API와 컴포넌트 시스템 소개____Transform 및 Renderer 컴포넌트 활용하기____API 사용을 위한 모범 사례__물리 및 충돌 활용하기____유니티의 물리 엔진 소개____물리 기반 상호작용____레이캐스팅을 활용한 고급 충돌 감지____물리 및 충돌 관리를 위한 모범 사례__게임 씬 및 환경 관리하기____유니티의 씬 관리 소개____씬 전환 제어하기____환경 설정 조정하기____씬 및 환경의 최적화를 위한 모범 사례__고급 API 기능____유니티의 고급 API 기능 살펴보기____정교한 게임 기능 구현하기____고급 개발을 위한 모범 사례__요약6장. 유니티의 자료구조 - 배열, 리스트, 딕셔너리, 해시셋, 게임 로직 __기술적 요구 사항____하드웨어 요구 사항____소프트웨어 요구 사항__배열과 리스트 이해하기____배열 소개____리스트 소개____유니티에서 리스트와 배열의 실제 활용 사례__딕셔너리와 해시셋 살펴보기____딕셔너리 소개____해시셋 소개____딕셔너리와 해시셋 비교하기____고급 팁 및 기법__유니티의 사용자 정의 자료구조__게임 로직을 위한 자료구조____게임 로직 및 자료구조의 기본____게임 개발의 고급 데이터 관리____유니티에서의 자료구조 최적화 및 통합__요약7장. 상호작용형 UI 요소 설계하기- 유니티에서의 메뉴 및 플레이어 상호작용__기술적 요구 사항__유니티에서 UI 요소 설계하기____UI 컴포넌트 기본____스타일과 테마____반응형 디자인__플레이어 입력 스크립트 작성____입력 방법 개요__동적인 메뉴 제작하기____메뉴 디자인 원칙____메뉴 기능 구현하기____메뉴의 상호작용 요소__게임 오브젝트를 활용한 커스텀 상호작용____커스텀 상호작용 정의하기____상호작용 메커니즘 스크립트 작성____커스텀 상호작용의 예__요약8장. 유니티 게임 개발의 물리 및 애니메이션 마스터하기 __기술적 요구 사항____하드웨어 요구 사항____소프트웨어 요구 사항__유니티 물리의 핵심 개념____물리 컴포넌트 이해하기____힘, 중력, 충격 살펴보기____물리 머티리얼과 마찰력____충돌 감지 및 반응__게임 캐릭터 애니메이션____Animator 컴포넌트 소개____애니메이션 트랜지션과 파라미터____외부 애니메이션의 임포트 및 활용____기본 애니메이션을 생성하고 플레이어 입력에 연결하기__환경 상호작용____물리 기반 캐릭터 상호작용____환경 상호작용 요소____동적 환경 반응__고급 애니메이션 기법____IK 마스터하기____자연스러운 애니메이션을 위한 블렌드 트리 활용하기____복잡한 동작을 위한 애니메이션 레이어 활용하기____물리 기능과 애니메이션의 동기화__요약3부 고급 게임 개발9장. 유니티의 고급 스크립팅 기법- Async, 클라우드 연동, 이벤트, 최적화 __기술적 요구 사항__비동기 프로그래밍과 코루틴____비동기 프로그래밍의 소개____복잡한 비동기 작업에 코루틴 활용하기__유니티에서 코루틴 이해하기____유니티 코루틴의 실용적인 예제____코루틴을 구현할 때 마주할 수 있는 일반적인 문제와 이를 해결하는 모범 사례__고급 데이터 관리____게임 개발에 사용되는 자료구조의 개요____유니티에서 고급 자료구조 구현하기____게임 저장을 위한 직렬화 및 역직렬화____성능을 위한 데이터 관리 최적화__커스템 이벤트 시스템 제작하기____C#의 이벤트와 델리게이트에 대한 개요____유니티에서 커스텀 이벤트 시스템 설계하기____게임 개발에서 커스텀 이벤트 시스템의 실제 적용 사례 및 예제____유니티에서 이벤트 시스템을 설계하고 사용할 때의 모범 사례와 일반적으로 저지르는 실수__스크립트 최적화 기술____병목현상 프로파일링 및 식별____게임 스크립트 최적화____메모리 관리 및 최소화____스크립트 최적화를 위한 모범 사례__요약10장. 유니티에서 인공지능 구현하기 __기술적 요구 사항__게임에서 AI의 역할 소개____게임 개발에서 대규모 언어 모델과 행동 트리 비교하기____AI를 활용한 게임플레이 향상시키기__유니티의 AI 지원 소개__경로 탐색 구현하기____경로 탐색 알고리듬 기초____유니티의 경로 탐색 도구 - NavMesh와 그 외의 도구____유니티 씬에서 기본 NavMesh 설정하기____실제 경로 탐색 예제 및 성능 고려 사항__AI 의사 결정____AI 의사 결정 프레임워크 개요____유니티에서 의사 결정 모델 구현하기____유니티에서 AI를 설계하고 구현하기 위한 모범 사례와 최적화 전략__NPC를 위한 행동 AI____행동 트리를 활용한 복잡한 행동 개발하기____고급 AI 기법의 도입____성능과 몰입을 위한 모범 사례__요약11장. 멀티플레이어 및 네트워킹- 매치메이킹, 보안, 상호작용형 게임플레이 __기술적 요구 사항__유니티 네트워킹의 기초____유니티 네크워킹 소개____유니티 네트워킹 API와 도구____멀티플레이어 게임 아키텍처__멀티플레이어 로비 제작하기____로비 디자인 원칙____로비 기능 구현하기____고급 로비 기능 및 UI 통합__게임 상태 동기화____상태 동기화 방법____네트워크를 통한 사용자 입력 처리____움직임 예측 및 보간____상태 동기화를 위한 유니티 도구__네트워크 지연 및 보안 처리____지연 최소화 및 보정 기법____멀티플레이어 게임에 대한 보안 조치____안전하고 반응성이 뛰어난 네트워크 게임 환경 보장하기__요약12장. 유니티에서 게임 성능 최적화하기 - 프로파일링 및 분석 기법 __기술적 요구 사항__프로파일링 및 병목 현상 식별____유니티의 프로파일링 도구 소개____프로파일링 기법과 병목 현상 식별 방법 살펴보기____프로파일링 데이터 해석 및 조치__유니티의 메모리 관리____유니티 메모리 사용의 이해____가비지 컬렉션의 영향 최소화하기____실용적인 메모리 관리를 위한 팁과 도구__그래픽 및 렌더링 최적화____LOD 및 애셋 최적화____컬링 기법____배칭 기법____셰이더 및 머티리얼 최적화__효율적인 스크립팅 및 코드 최적화____DOTS를 활용한 스크립트 최적화 모범 사례____고급 데이터 관리 및 접근 패턴____DOTS의 고급 데이터 관리를 활용한 성능 향상____Burst 컴파일러를 활용한 성능 극대화__요약4부 실제 애플리케이션 및 사례 연구13장. 유니티로 완성도 있는 게임 만들기- 핵심 메카닉, 테스트 및 플레이어 경험 향상시키기 __기술적 요구 사항__게임 콘셉트 및 계획____게임 아이디어 구상하기____개발 범위와 개발 이정표 정의하기____장르 및 플랫폼 선택하기__게임 메커니즘 설계하기____다양한 장르에 맞는 메커니즘 개발____유니티에서 메커니즘 프로토타입 제작 및 구현하기____핵심 메커니즘 개발하기__애셋 및 레벨 통합하기____그래픽 애셋의 관리 및 통합____애셋 임포트하기____유니티에서 애셋 정리하기__애니메이션 및 오디오 통합하기____UI 디자인____게임 레벨의 생성 및 구성__폴리싱 및 테스트____테스트 전략 수립하기____테스트와 디버깅을 위한 유니티 도구의 활용____피드백 반영 및 게임 다듬기__요약__더 읽어볼 거리14장. 유니티의 XR 탐색 - 가상 현실 및 증강 현실 경험 개발하기 __기술적 요구 사항____하드웨어 요구 사항____소프트웨어 요구 사항__유니티 VR의 기초____유니티에서 VR 환경 설정하기____기본 VR 상호작용 및 움직임 원칙____컨트롤러 입력 및 상호작용__AR 경험 제작하기____추적 방법 및 AR 씬 생성____실제 세계 상호작용 및 디지털 증강__VR/AR에서의 사용자 상호작용____입력 방법과 상호작용 기법____XR을 위한 직관적인 UI/UX 설계하기__몰입형 기술을 위한 성능 최적화____렌더링 최적화____애셋 관리 및 최적화____지연 시간 최소화 및 반응성 개선__요약15장. 유니티로 크로스 플랫폼 게임 개발하기 - 모바일, 데스크톱, 콘솔 __기술적 요구 사항____하드웨어 요구 사항____소프트웨어 요구 사항__플랫폼별 도전 과제 이해하기____하드웨어 사양과 성능 최적화____입력 방법과 컨트롤 방식____사용자 인터페이스와 사용자 경험 고려 사항__모바일 기기에 맞게 게임 개발하기____모바일 기기의 성능 최적화____터치 및 모션 입력에 맞게 컨트롤 방식 조정하기____모바일 UI 및 UX 고려 사항__반응형 UI 디자인____유니티에서 반응형 UI 디자인의 기본 원칙____앵커와 동적 레이아웃 활용하기____확장성과 접근성에 대한 고려 사항__다양한 플랫폼에서 테스트 및 디버깅____크로스 플랫폼 테스트 설정____플랫폼별 버그 식별 및 해결____테스트 자동화 및 분석 활용__요약16장. 유니티 게임 출시, 수익화, 마케팅 - 광고 및 커뮤니티 구축 전략 __게임 퍼블리싱 플랫폼____주요 퍼블리싱 플랫폼의 개요__마케팅 및 게임 홍보____매력적인 마케팅 자료 제작____소셜 미디어 및 콘텐츠 플랫폼 활용____게임 커뮤니티 및 미디어 참여__효과적인 게임 수익 창출 전략____수익화 모델 개요____수익 창출과 플레이어 경험의 균형 맞추기__커뮤니티 참여 및 지원____게임 커뮤니티 구축 및 육성____게임 개선을 위한 커뮤니티 피드백 활용__요약부록. 유니티 6 잠금 해제 - 고급 기능 및 성능 향상