Unity3D/2D游戲開發從0到1(第二版) ( 簡體 字) |
作者:劉國柱 | 類別:1. -> 多媒體 -> 遊戲引擎 -> Unity |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 48468 詢問書籍請說出此書號!【缺書】 NT售價: 495 元 |
出版日:1/1/2018 |
頁數:524 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121334993 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:2004年,Unity公司誕生于丹麥的阿姆斯特丹,2005年將總部設在了美國的舊金山,并發布了Unity 1.0版本。起初它只能應用于MAC平臺,主要針對WEB項目和VR(虛擬現實)的開發。這時的它并不起眼,直到2008年推出Windows版本,并開始支持iOS和Wii,才逐步從眾多的游戲引擎中脫穎而出,并順應移動游戲的潮流而變得炙手可熱。2009年,Unity的注冊人數已經達到了3.5萬,榮登2009年游戲引擎的前五名。2010年,Unity開始支持Android,繼續擴散影響力。其在2011年開始支持PS3和XBOX360,則可看作全平臺的構建完成,截至筆者發稿目前Unity已經支持Windows、Mac OS X、web browsers、iOS、Android、PlayStation 3、Xbox 360、Xbox One、Windows Store、Windows Phone、Linux、Blackberry 10、Wii U、PlayStation 4、PlayStation Vita、PlayStation Mobile、Samsung Tizen、Xbox One等幾乎所有的主流平臺。 如此的跨平臺能力,很難讓人再挑剔,尤其是支持當今最火的Web、iOS和Android平臺。另據國外媒體《游戲開發者》報道:在游戲引擎里哪種功能最重要的調查中,“快速的開發時間”排在了首位,很多Unity用戶認為這款工具易學易用,一個月就能基本掌握其功能。 根據Unity 官方(2014年8月)最新公布的數據,全世界有6億的玩家在玩使用Unity引擎制作的游戲,用Unity 創造的應用和游戲目前的累計下載量達到了87億次! Unity中國區的開發者數量、用戶活躍度和終端安裝量均已經成為全球第一。 Unity 引擎占據全功能游戲引擎市場45%的份額。全球用戶已經超過330萬人,每月活躍用戶數高達60萬! 驚人的詳細數據如下: 1. 市場份額45%居全球首位 在世界范圍內,Unity占據全功能游戲引擎市場45%的份額,居全球首位。最接近Unity的競爭對手的市場份額只有其1/3。 2. 6億玩家,87億次下載 Unity通過使用我們的引擎制作的游戲吸引了遍布世界各地的6億游戲玩家。相比之下,Facebook擁有8.29億的日常用戶。用Unity 創造的應用和游戲目前的累計下載量達到了87億次。 2012年,Unity正式進入中國市場,短短兩年的發展,已經成就了業務量10倍的增長。無論是開發者的數量、活躍度、終端安裝量,還是Unity 引擎在3D游戲市場的占有率,Unity 中國都是當之無愧的全球第一,以下是中國區Unity市場創造的3項世界第一! 1. 中國注冊用戶數全球第一 Unity 目前的開發者注冊人數已經超過330萬,在2017年的4月份,中國區的開發者數量已經超越美國,成為全球第一。 2. 中國活躍用戶量全球第一 Unity的每月全球活躍用戶超過60萬。中國區每個月Unity 編輯器被使用的次數總和高達180萬次,居全球首位。美國以150萬次使用次校居全球第二。 3. 中國區3D 手機游戲市場全球第一 Unity中國區在3D手機游戲市場的占有率已經達到75%,超越日本成為世界第一。也就是說,在最暢銷的前100款3D手機游戲中,平均每10款就有7.5款是使用Unity引擎制作的。 本書特點 1. 書籍采用Unity 2017版本進行教學,在第一版的基礎上,60%的內容按照新版本進行重寫。理論篇增加所有Unity 2017重要知識點:基于Progressive Lightmapper新光照引擎的光照烘焙、光照預覽Light Explorer技術、Unity2D 新的Sprite Mask 功能、2D關節系統、精靈效應器組件(Buoyancy Effector2D、PlatformEffector2D等),TimeLine& Cinemachine技術,基于Unity 2017版本AssetBundle資源動態加載理論及AssetBundle實用框架設計等。 2. 根據第一版廣大讀者的反饋情況,實戰項目篇由第一版1個項目的講解,擴充為4個項目循序漸進地闡述。進一步強化讀者對Unity知識點的靈活運用,做到舉一反三,讓學員零基礎開始起步,真正通過一本書成為游戲開發高手! 3. 本書講解通俗易懂,循序漸進,且對于Unity技術點講解全面、完整、深入,可以成為讀者值得長期珍藏的書籍。 4. 本書配套下載資料包含海量教學資料(采用Unity 2017版),方便大專院校與國內外廣大培訓機構講師與學員使用。 5. 為進一步方便國內外廣大游戲開發愛好者與讀者學習,書籍附錄部分提供如下實用學習資料:“國內游戲開發企業面試與筆試真題集錦”、“Unity開發常見錯誤與分析”、 “游戲開發職位簡歷模板”、“Unity4.x/5.x/2017.x升級差異總結”、“Unity特殊文件夾一覽表”、“Unity對C#語言的知識點基本要求列表”等。 第二版本整體說明 第二版本的改版整體突出三個“更”字:更新、更多、更實用! 詳細描述如下。 1. “更新” 全書采用最新Unity 2017.x版本進行講解,其中涉及Unity 2017最新的光影效果、光影調試LightExplorer 窗口預覽技術、強大的影視動畫編輯Timeline& Cinemachine功能、全新的動態烘焙NavMesh技術等。 2. “更多” 本版本針對廣大高校與培訓機構的反饋意見,對于重要核心章節都提供了實戰項目練習,以供廣大學員更有針對性地鞏固學習。 本版本相對第一版,在游戲案例項目上增加到了4個項目的講解,且最后兩個大型游戲項目,換裝了全新的場景與道具素材,更具觀賞性與可玩性。 3. “更實用” 針對老讀者而言,第二版本相對第一版,還著重強化了2D游戲開發中大量實用組件與核心API的講解、3D圖形學中基于PBS材質系統與Shader,以及Unity 2017.x版本資源動態加載AssetBundle的講解深度與廣度。尤其對于AssetBundle技術,本書還提供了商業級的AssetBundle框架封裝。不僅對初學者,對于廣大Unity研發人員也具有很高的實用與參考價值。 針對廣大高校與培訓機構老師的意見,對部分章節的講解順序與內容做了更加合理的安排,以期達到更佳的學習體驗。 致謝 感謝電子工業出版社張迪老師的專業修改意見與鼓勵。同時感謝家人的支持,以及吳翔等朋友對技術支持的幫助與汗水付出。最后,祝電子工業出版社越辦越好,為祖國IT人才的培養貢獻更大的力量。 參加本書編寫的還有彭振宇、張光超、范少敏、臧大磊、趙晉偉、毛廣超、韋節賓、劉傳輝、郭義華、魏吉芳和郭義芳。 由于編者水平有限,且書中涉及知識點較多,難免有錯誤疏漏之處,敬請廣大讀者批評指正,并提出寶貴意見。 |
內容簡介:本書為第二版,采用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 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 |
序: |