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

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

作者: 劉國柱
出版社: 電子工業
出版在: 2018-02-01
ISBN-13: 9787121334993
ISBN-10: 7121334992
裝訂格式: 平裝
總頁數: 507 頁





內容描述


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


目錄大綱


項目實戰篇
實戰項目1:記憶卡牌3 
1.策劃3 
2.場景搭建4 
3.遊戲核心邏輯5 
實戰項目2:Flappy Bird 8 
1.策劃8 
2.場景搭建9 
3.主角10 
4.道具開發12 

  1. UI界面與遊戲週期管理15 
    實戰項目3:不夜城跑酷17 
    1.策劃17 
    2.場景搭建19 
    3.主角21 
    4.道具開發24 
    5.場景與道具的動態生成算法31 
  2. UI界面與遊戲週期管理34 
    7.對象緩衝池管理38 
    實戰項目4:生化危機41 
    1.策劃41 
    2.場景搭建45 
    3.主角47 
    4.道具開發47 
  3. 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

作者介紹


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




相關書籍

Fundamentals of Wearable Computers and Augmented Reality, 2/e (Hardcover)

作者 Woodrow Barfield

2018-02-01

OpenGL圖形編程項目實戰

作者 李婷婷 楊浩婕 劉石 付力婭

2018-02-01

3ds Max Modeling for Games: Volume II: Insider's Guide to Stylized Modeling (Paperback)

作者 Andrew Gahan

2018-02-01