Unity3D/2D 游戲開發從0到1 (第二版)

劉國柱

  • 出版商: 電子工業
  • 出版日期: 2018-02-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 507
  • 裝訂: 平裝
  • ISBN: 7121334992
  • ISBN-13: 9787121334993
  • 相關分類: 遊戲引擎 Game-engine
  • 立即出貨 (庫存=1)

買這商品的人也買了...

相關主題

商品描述

本書為第二版,採用Unity 2017。全書分為實戰項目篇與開發理論篇進行系統講解。實戰項目篇由淺入深提供四個教學案例:2D小游戲兩個和兩款3D大型教學案例。通過本篇的認真學習,讀者可以達到優秀開發者的水平。開發理論篇,從初學者容易入門的角度把全書分為上、下兩篇各15章。上篇完全是為零基礎游戲愛好者或者在校大學生所準備,採用“案例化”教學思路,所學知識點與游戲案例緊密結合。下篇是理論進階篇,主要學習3D數學、3D圖形學(3D圖形渲染/貼圖/PBS材質/Shader)、TimeLine& Cinemachine、Unity2017新導航尋路、項目優化策略、游戲移植與手指觸控、對象緩沖池、網絡Socket、AssetBundle資源動態加載與AssetBundle框架設計等。

作者簡介

擁有十多年的軟件、遊戲研發與教學經驗,具備深厚語言基礎。早年在國內上市企業做研發經理,熟悉企業大型軟件運作管理過程、軟件架構設計理論。精通與熟悉Unity3D、XNA等3D與2D 遊戲開發技術,教學語言思路清晰,循循善誘的教學方法深受廣大學子歡迎。

目錄大綱

項目實戰篇
實戰項目1:記憶卡牌3 
1.策劃3 
2.場景搭建4 
3.遊戲核心邏輯5 
實戰項目2:Flappy Bird 8 
1.策劃8 
2.場景搭建9 
3.主角10 
4.道具開發12 
5. UI界面與遊戲週期管理15 
實戰項目3:不夜城跑酷17 
1.策劃17 
2.場景搭建19 
3.主角21 
4.道具開發24 
5.場景與道具的動態生成算法31 
6. UI界面與遊戲週期管理34 
7.對象緩衝池管理38 
實戰項目4:生化危機41 
1.策劃41 
2.場景搭建45 
3.主角47 
4.道具開發47 
5. UI界面與遊戲週期管理51 

開發理論篇上篇
第1章遊戲歷史與Unity發展概述54 
1.1 “錢途”無限的遊戲開發領域54 
1.1.1 Unity版本快速迭代升級55 
1.1.2 Unity技術應用範圍56 
1.1.3強大的跨平台性56 
1.2電子遊戲發展史57 
1.3遊戲引擎與Unity的發展歷程60
1.3.1什麼是遊戲引擎60 
1.3.2遊戲引擎的功能61 
1.3.3為什麼需要使用遊戲引擎61 
1.3.4遊戲引擎的發展62 
1.3.5 Unity遊戲引擎的特點62 
1.3.6 Unity引擎的主要特性63 
1.3.7 Unity遊戲引擎的發展歷史64 
1.4 Unity下載與安裝65 
1.4.1 Unity下載與安裝65 
1.4.2 Unity的資源商店(Asset Store) 66 

第2章Unity2017.x安裝與3D模型入門67 
2.1 Unity 2017.x版本的下載安裝67 
2.2 Unity編輯器界面75 
2.2.1掌握Unity編輯器的佈局與調整77 
2.2.2了解Unity編輯器各個重要視圖與作用78 
2.3 3D模型入門操作80 
2.3.1 3D模型的位移、旋轉與縮放80 
2.3.2 3D模型操作快捷方式82 
2.3.3選擇3D模型的“正”方向82 
2.3.4使用屬性窗口進行精確調整84 
2.4開發Unity“Hello World” 85 
2.5本章練習與總結88 

第3章3D模型基礎89 
3.1 Unity編輯器進一步講解89 
3.1.1 Unity菜單89
3.1.2項目(Project)視圖93 
3.1.3場景(Scene)視圖95 
3.1.4視圖顯示模式96 
3.1.5場景視圖的查看與導航97 
3.2世界、局部與左手坐標系98 
3.2.1現實世界的“世界坐標”與“局部坐標” 98 
3.2.2演示兩種坐標的差異98 
3.2.3使用腳本方式演示差異99 
3.2.4什麼是“左手坐標系” 100 
3.2.5使用控制台(Console)窗口進行代碼調試100 
3.3腳本知識入門101 
3.3.1鍵盤與鼠標輸入代碼101 
3.3.2環繞旋轉101 
3.4小項目開發:地球環繞太陽旋轉101 
3.5本章練習與總結105 
3.6案例開發任務105 

第4章地形編輯器106 
4.1創建基本地形106 
4.1.1繪製貼圖紋理109 
4.1.2製作各種地形110 
4.1.3種植樹木與花草113 
4.2觀察虛擬世界113 
4.3擴展地形編輯115 
4.4本章練習與總結116 
4.5案例開發任務117 

第5章光源118 
5.1概述118 
5.2光源的分類與重要參數120
5.3典型光源場景製作121 
5.4本章練習與總結123 
5.5案例開發任務123 

第6章光照烘焙124 
6.1概述124 
6.2光照烘焙125 
6.3反射探針(Reflection Probe) 132 
6.4光照探頭(Light Probe) 134 
6.5光照預覽窗口(Light Explorer) 137 
6.6本章練習與總結138 
6.7案例開發任務138 

第7章音頻139 
7.1概述139 
7.2音頻剪輯屬性140 
7.3音頻監聽與音頻源組件140 
7.4音頻混響器與濾波器組件143 
7.5音頻混音器(Audio Mixer) 144 
7.6本章練習與總結151 
7.7案例開發任務151 

第8章Unity腳本程序設計153 
8.1 Unity腳本編輯器介紹153 
8.1.1什麼是.Net框架153 
8.1.2什麼是Mono與MonoDevelop 154 
8.1.3什麼是Visual Studio 154 
8.2腳本程序基礎155 
8.2.1創建腳本注意事項155 
8.2.2項目工程分層設計156
8.2.3如何更改腳本模板157 
8.3 Unity重要腳本函數157 
8.3.1 Unity事件函數157 
8.3.2 Untiy重要核心類學習158 
8.3.3 GameObject類158 
8.3.4 MonoBehaviour類162 
8.3.5 Transform類165 
8.3. 6 Time類166 
8.4 Unity腳本生命週期167 
8.4.1 Unity事件函數調用順序168 
8.4.2事件函數禁用與啟用規律169 
8.5 Unity偽多線程揭秘172 
8.6修改Unity腳本執行順序173 
8.7 Unity重要應用類175 
8.8 Unity輸入管理器176 
8.9本章練習與總結178 

第9章UI界面開發179 
9.1概述179 
9.2基礎控件182 
9.2.1 Canvas畫布控件182 
9.2.2 EventSystem控件183 
9.2.3 Panel控件184 
9.2.4 Text控件184 
9.2.5 Image控件185 
9.2.6 Button控件187 
9.2.7 Button事件系統189 
9.3 Anchor錨點與屏幕自適應191
9.4 UGUI高級控件193 
9.4.1 Toggle控件193 
9.4.2 Slider控件194 
9.4.3 Scrollbar控件194 
9.4.4 ScrollRect複合控件195 
9.4.5 TabPage標籤頁面197 
9.5 UGUI佈局管理控件199 
9.6本章練習與總結202 
9.7案例開發任務202 

第10章3D模型與動畫製作204 
10.1概述205 
10.2 3DMax軟件基本使用205 
10.3 3D模型尺寸單位設置207 
10.4 3DMax模型製作與導出Unity流程208 
10.5模型導出丟失貼圖問題212 
10.6 3D文字的製作與動畫212 
10.7角色Legacy動畫213 
10.8 Animation動畫編輯工具216 
10.9自定義資源包的導入與導出219 
10.10本章練習與總結222 
10.11案例開發任務222 

第11章物理學模擬223 
11.1概述223 
11.2剛體223 
11.3物理材質227 
11.4腳本控制剛體229 
11.5關節系統230 
11.5.1鉸鏈關節230
11.5.2彈簧關節232 
11.5.3固定關節232 
11.5.4角色關節233 
11.5.5布料模擬235 
11.6物理管理器(Physics Manager) 237 
11.7本章練習與總結238 

第12章碰撞體與觸發器239 
12.1概述239 
12.2碰撞體的分類與作用240 
12.3碰撞檢測事件函數241 
12.4觸發檢測事件函數242 
12.5碰撞過濾244 
12.6本章練習與總結246 
12.7案例開發任務247 

第13章Unity 2D技術248 
13.1概述248 
13.2項目示例講解248 
13.3 Untiy 2D物理引擎253 
13.3.1 2D剛體253 
13.3.2 2D碰撞體254 
13.3.3 2D關節系統256 
13.4 Unity 2D特效功能256 
13.4.1 Sprite Mask功能256 
13.4.2精靈效應器組件258 
13.5本章練習與總結263 
13.6案例開發任務263 

第14章協程與調用函數264 
14.1協程定義與功能264
14.2調用函數定義與功能265 
14.3協程與調用函數區別與適用範圍266 
14.4本章練習與總結267 
14.5案例開發任務267 

第15章數據傳值技術268 
15.1概述268 
15.2 SendMessage簡單傳值269 
15.3 SendMessage高級傳值271 
15.4本章練習與總結272 

開發理論篇下篇
第16章3D數學274 
16.1坐標系統274 
16.2向量279 
16.3本章練習與總結287 

第17章3D圖形學288 
17.1 3D圖形學概述288 
17.2 Unity 3D圖形渲染289 
17.2.1 Mesh Fillter網格過濾器289 
17.2.2 Mesh Renderer網格渲染器290 
17.2.3 Skinned Mesh Renderer蒙皮網格渲染器291 
17.3貼圖292 
17.3.1二維貼圖292 
17.3.2視頻貼圖297 
17.3.3渲染貼圖301 
17.4材質302 
17.4.1基於物理著色(PBS)的材質系統303 
17.4.2材質球屬性305
17.4.3材質球分類306 
17.5著色器(Shader) 313 
17.5.1概述313 
17.5.2基本原理:圖形渲染管線314 
17.5.3著色器的分類與基本結構315 
17.5.4固定渲染管線著色器318 
17.5 .5表面著色器320 
17.6本章練習與總結327 

第18章TimeLine& Cinemachine技術328 
18.1 TimeLine時間線328 
18.2 Cinemachine虛擬攝像機332 
18.3 Frame Recorder幀錄製器335 
18.4本章練習與總結336 

第19章粒子系統337 
19.1概述337 
19.2基本粒子組件屬性338 
19.3粒子系統示例344 
19.4 Unity內置粒子系統包346 
19.5粒子系統的腳本調用方式347 
19.6 Line Renderer & Trail Renderer 348 
19.7本章練習與總結351 

第20章Mecanim動畫系統352 
20.1概述352 
20.2製作Mecanim動畫系統353 
20.2.1步驟一:製作Avatar替身353
20.2.2步驟二:設置動畫狀態機(Animator Controller) 356 
20.2.3步驟三:設置動畫循環359 
20.2.4步驟四:使用代碼控制角色動畫359 
20.3融合術技術360 
20.4動畫層與身體蒙版365 
20.5動畫復用技術367 
20.6 StateMachineBehaviour腳本368 
20.7本章練習與總結370 

第21章導航尋路371 
21.1基本導航尋路371 
21.2斜坡與跳躍374 
21.3使用Off Mesh Link組件375 
21.4網格分層376 
21.5 Nav Mesh Obstacle組件378 
21.6基於組件Nav Mesh的新特性380 
21.7 Nav Mesh定向3D空間任何方向新特性382 
21.8 Nav Mesh動態烘焙新特性383 
21.9本章練習與總結385 

第22章項目研發常用優化策略386 
22.1遮擋剔除( Occlusion Culling) 386 
22.2層級細節(LOD) 390 
22.3項目調優工具數據分析器(Profiler) 393 
22.4項目優化策略395 
22.4.1項目優化之DrawCall 395
22.4.2項目優化之模型與圖像方面397 
22.4.3項目優化之光照與攝像機方面399 
22.4.4項目優化之程序優化方面401 
22.4.5項目優化之Unity系統設置方面403 
22.4.6項目優化之良好開發與使用習慣404 
22.5本章練習與總結404 

第23章Unity遊戲移植與手指觸控識別406 
23.1 JDK安裝與環境參數配置406 
23.1.1下載與安裝JDK 406 
23.1.2設置JDK環境409 
23.2 Android虛擬機的安裝與配置412 
23.2.1下載與配置Android SDK 412 
23.2.2更新環境變量415 
23.3 Unity相應配置415 
23.3.1 Unity配置Android SDK路徑415 
23.3.2發布程序,切換到Android平台416 
23.3.3更改默認的產品標示符417 
23.3.4輸出*.apk包417 
23.3.5真機測試418 
23.4手指觸控識別418 
23.4.1手指觸控API 418 
23.4.2手指觸控常見方式419 
23.5本章練習與總結422 

第24章軟件重構思想423 
24.1軟件重構的重要性423
24.2項目示例424 
24.3本章練習與總結427 

第25章射線428 
25.1射線概述428 
25.2項目示例講解429 
25.2.1射擊場景開發429 
25.2.2角色尋路開發430 
25.3本章練習與總結431 

第26章數據持久化技術432 
26.1 PlayerPrefs持久化技術432 
26.2 XML持久化技術434 
26.3本章練習與總結439 

第27章預加載與對象緩衝池技術440 
27.1概述440 
27.2簡單對象緩衝池技術441 
27.3高級對象緩衝池技術445 
27.4本章練習與總結451 

第28章網絡基礎452 
28.1網絡概述452 
28.2多線程技術453 
28.2.1多線程的定義453 
28.2.2多線程的優先級454 
28.2.3多線程的狀態控制455 
28.2.4多線程的線程同步456 
28.3套接字Socket技術458 
28.3.1網絡基礎知識458 
28.3.2 Socket定義459 
28.3.3面向連接的Socket 459
28.3.4無連接的Socket 460 
28.3.5同步Socket 460 
28.3.6異步Socket 461 
28.4網絡下載WWW類464 
28.5本章練習與總結466 

第29章AssetBundle資源動態加載467 
29.1 AssetBundle概述467 
29.2創建AssetBundle 468 
29.3下載AssetBundle 469 
29.4 AssetBundle的加載與卸載470 
29.5 AssetBundle依賴關係472 
29.6本章練習與總結472 

第30章AssetBundle框架設計473 
30.1 AssetBundle框架整體設計473 
30.2自動化創建AssetBundle 475 
30.2.1自動給資源文件添加標記475 
30.2. 2打包資源且輸出路徑477 
30.2.3刪除路徑中所有資源478 
30.3單一AssetBundle包的加載與管理478 
30.4 AssetBundle整體管理480 
30.4.1讀取項目清單文件481 
30.4.2 AssetBundle關係類482 
30.4.3 AssetBundle總管理類482 
30.4.4多AssetBundle管理類483
30.5本章練習與總結484 

附錄A全國Unity遊戲研發職位筆試/面試真題集錦486 
附錄B Unity開發常見錯誤與分析492 
附錄C遊戲開發職位簡歷模板494 
附錄D Unity4.x/5.x/2017.x升級差異總結498 
附錄E Unity特殊文件夾一覽表501 
附錄F遊戲開發對C#語言知識點基本要求504