本着「起點低、終點高」的原則,內容覆蓋了從學習Unity3D開發引擎必知必會的基礎知識到能夠熟練使用Unity3D開發引擎制作簡單3D游戲的每一個階段。
全書共分為12章,前11章按照由易到難的順序依次介紹了Unity基礎與開發環境配置、腳本程序的開發、圖形用戶界面、物理引擎、着色器基礎、3D游戲開發常用技術、光影效果、模型與動畫、地形與尋路技術、游戲資源最新及網絡開發。最后一章給出了一個完整的游戲案例,既可以作為課程最后的總結與提高,也可以作為課程設計。
本書既可以作為高等院校計算機相關專業計算機游戲或多媒體虛擬現實及增強現實相關課程的教材,也可以作為相關領域開發人員的參考用書。
吳亞峰,畢業於北京郵電大學,后留學澳大利亞取得碩士學位。1998年開始從事Java應用的開發,有10多年的Java開發與培訓經驗。主要的研究方向為OpenGLES、手機游戲、JavaEE以及搜索引擎。同時為手機游戲、JavaEE獨立軟件開發工程師,並兼任百納科技Java培訓中心首席培訓師。近十年來為數十家企業培養了上千名**軟件開發人員,曾編寫過《Android3D游戲開發技術寶典——OpenGLES2.0》、《Cocos2d-X3.0游戲開發實戰詳解》、《Unity43D開發實戰詳解》等多本暢銷技術書籍。2008年初開始關注Android平台下的3D應用開發,並開發出一系列的Android應用程序與3D游戲。
於復興,北京科技大學碩士,從業於計算機軟件領域10多年,在軟件開發和計算機教學方面有着豐富的經驗。工作期間曾主持科研項目「PSP流量可視化檢測系統研究與實現」,主持研發了省市級項目多項,同時為多家企事業單位設計開發了管理信息系統,並在各種科技刊物上發表多篇相關論文。2008年開始關注Android平台下的應用開發,參與開發了多款手機3D游戲應用。
索依娜,從業於計算機軟件領域10多年,在軟件開發與計算機教學方面有着豐富的經驗。工作期間曾參與省級科研項目2項,發表論文多篇,參與編寫技術書籍多部,從2008年起開始關注Android平台下的應用開發,參與開發了多款手機娛樂應用。
目錄
第1章Unity基礎與開發環境配置1
1.1 初識Unity游戲開發引擎 1
1.1.1 Unity簡介 1
1.1.2 Unity的誕生與發展 1
1.1.3 Unity的特色 2
1.2 Unity集成開發環境的搭建 3
1.3 Unity集成開發環境的配置 6
1.3.1 Unity集成開發環境的整體布局 6
1.3.2 Unity菜單欄 7
1.3.3 Unity工具欄 7
1.3.4 Unity場景設計面板 8
1.3.5 游戲預覽面板 8
1.3.6 Unity項目資源列表 9
1.3.7 Unity屬性查看器 9
1.3.8 Unity狀態欄與控制台 10
1.3.9 菜單欄 10
1.4 本章小結 14
1.5 習題 14
第2章 Unity腳本程序基礎知識 15
2.1 Unity腳本概述 15
2.2 Unity中C#腳本的注意事項 15
2.3 Unity腳本的基礎語法 16
2.3.1 位移與旋轉 17
2.3.2 記錄時間 18
2.3.3 訪問游戲對象組件 20
2.3.4 訪問其他游戲對象 21
2.3.5 向量 25
2.3.6 成員變量和全局變量 27
2.3.7 實例化游戲對象 28
2.3.8 協同程序和中斷 29
2.3.9 一些重要的類 30
2.3.10 性能優化 34
2.3.11 腳本編譯 35
2.4 本章小結 36
2.5 習題 36
第3章 Unity3D圖形用戶界面基礎 37
3.1 GUI圖形用戶界面系統 37
3.1.1 Button控件 37
3.1.2 Label控件 40
3.1.3 DrawTexture控件 42
3.1.4 Box控件 44
3.1.5 TextField控件 46
3.1.6 PasswordField控件 48
3.1.7 TextArea控件 50
3.1.8 Toggle控件 51
3.1.9 SelectionGrid控件 53
3.1.10 HorizontalScrollbar控件與VerticalScrollbar控件 54
3.1.11 BeginGroup容器和EndGroup容器 56
3.1.12 BeginScrollView控件和EndScrollView控件 58
3.1.13 Window控件 60
3.1.14 skin皮膚 61
3.1.15 GUI圖形用戶界面的變量 64
3.2 UGUI圖形用戶界面系統 67
3.2.1 UGUI控件的創建及案例 67
3.2.2 Panel控件和Text控件 70
3.2.3 Button控件 72
3.2.4 Image控件和RawImage控件 74
3.2.5 Toggle控件 76
3.2.6 Slider控件和Scrollbar控件 77
3.2.7 InputField控件 79
3.2.8 UGUI布局管理 81
3.2.9 UGUI中不規則形狀按鈕的碰撞檢測 83
3.2.10 ScrollView的制作 86
3.3 預制件Prefab資源的應用 88
3.3.1 預制件Prefab資源的創建 88
3.3.2 通過Prefab資源進而實例化對象 89
3.4 常用的輸入對象 90
3.4.1 Touch輸入對象 90
3.4.2 Input輸入對象的主要變量 93
3.4.3 Input輸入對象的主要方法 94
3.5 與銷毀相關的方法 96
3.5.1 Object.Destroy方法 96
3.5.2 MonoBehavior.OnDestroy方法 97
3.6 本章小結 99
3.7 習題 99
第4章 物理引擎 100
4.1 剛體 100
4.1.1 剛體特性 100
4.1.2 物理管理器 106
4.2 碰撞器 107
4.2.1 碰撞器的添加 108
4.2.2 碰撞過濾 111
4.2.3 物理材質 114
4.3 粒子系統 117
4.3.1 粒子系統的創建 117
4.3.2 粒子系統特性 118
4.4 關節 121
4.4.1 鉸鏈關節 121
4.4.2 固定關節 124
4.4.3 彈簧關節 126
4.4.4 可配置關節 128
4.5 車輪碰撞器 131
4.5.1 車輪碰撞器的創建 131
4.5.2 車輪碰撞器的特性 131
4.6 布料 137
4.7 角色控制器 142
4.7.1 角色控制器的特性 142
4.7.2 角色控制器的應用 143
4.8 本章小結 145
4.9 習題 146
第5章 着色器編程基礎 147
5.1 初識着色器 147
5.1.1 着色器概述 147
5.1.2 ShaderLab語法基礎 147
5.2 表面着色器 152
5.2.1 着色器的三種形態 153
5.2.2 表面着色器基礎知識 153
5.3 渲染通道的通用指令 159
5.3.1 設置LOD數值 160
5.3.2 渲染隊列 162
5.3.3 Alpha測試 164
5.3.4 深度測試 166
5.3.5 通道遮罩 169
5.4 通過表面着色器實現體積霧 170
5.5 本章小結 176
5.6 習題 176
第6章 3D游戲開發常用技術 177
6.1 天空盒的應用 177
6.1.1 天空盒基礎知識 177
6.1.2 天空盒案例開發 179
6.23D拾取技術 182
6.2.13D拾取技術基本知識 182
6.2.23D拾取案例開發 183
6.3 虛擬搖桿與按鈕的使用 187
6.3.1 下載並導入標准資源包 187
6.3.2 虛擬搖桿與按鈕的案例開發 189
6.4 加速度傳感器 193
6.5 動態字體 198
6.6 聲音 201
6.6.1 聲音類型和音頻偵聽器 201
6.6.2 音頻源 201
6.6.3 音頻效果 203
6.6.4 案例開發 205
6.7 霧特效和水特效 209
6.7.1 霧特效和水特效的基礎知識 210
6.7.2 霧特效和水特效的案例開發 211
6.8 SQLite數據庫 214
6.8.1 SQLite數據庫的基本知識 214
6.8.2 SQLite數據庫的案例開發 215
6.9 本章小結 219
6.10 習題 219
第7章 光影效果的使用 220
7.1 光源 220
7.1.1 點光源和定向光源 220
7.1.2 聚光燈光源和區域光源 222
7.2 光照貼圖的烘焙和使用 224
7.2.1 光照設置 225
7.2.2 光照烘焙案例 228
7.3 反射探頭 230
7.3.1 反射探頭基本知識 230
7.3.2 反射探頭案例開發 233
7.4 法線貼圖 235
7.4.1 法線貼圖的基本知識 235
7.4.2 在Unity中使用法線貼圖 236
7.5 Unity 3D光照系統中的高級功能 237
7.5.1 光照系統中的小功能 238
7.5.2 陰影的設置 242
7.5.3 Light Probes光探頭 244
7.5.4 材質編輯器 246
7.6 本章小結 248
7.7 習題 248
第8章 模型與動畫 249
8.13D模型背景知識 249
8.1.1 主流3D建模軟件的介紹 249
8.1.2 Unity與建模軟件單位的比例關系 250
8.1.3 將3D模型導入Unity 250
8.2 網格——Mesh 252
8.2.1 網格過濾器(Mesh Filter) 252
8.2.2 Mesh屬性和方法介紹 252
8.2.3 Mesh的使用 253
8.3 骨骼結構映射——Avatar 259
8.3.1 Avatar的創建 259
8.3.2 Avatar的配置 259
8.3.3 Muscle的配置 261
8.4 動畫控制器 263
8.4.1 創建動畫控制器 263
8.4.2 動畫控制器的配置 263
8.5 角色動畫的重定向 269
8.5.1 重定向的原理 269
8.5.2 重定向的應用 269
8.6 本章小結 273
8.7 習題 273
第9章 地形與尋路技術 274
9.1 地形引擎 274
9.1.1 地形的創建 274
9.1.2 地形的基本操作 275
9.1.3 地形的紋理添加及參數設置 277
9.1.4 高度圖的使用 282
9.2 拖痕渲染器——Trail Renderer 283
9.2.1 拖痕渲染器的基礎知識 283
9.2.2 剎車痕案例制作 285
9.3 自動尋路技術 289
9.3.1 自動尋路技術基礎知識 289
9.3.2 小球尋路案例 292
9.4 本章小結 295
9.5 習題 295
第10章 游戲資源更新 296
10.1 初識AssetBundle 296
10.2 AssetBundle的基本使用 296
10.2.1 AssetBundle的打包 297
10.2.2 下載AssetBundle 299
10.2.3 AssetBundle的加載和卸載 301
10.3 AssetBundle相關知識 303
10.3.1 管理依賴 303
10.3.2 儲存和加載二進制文件 303
10.3.3 在資源中包含腳本 304
10.4 本章小結 305
10.5 習題 305
第11章 網絡開發基礎 306
11.1 網絡類——Network基礎 306
11.1.1 Network類 306
11.1.2 Network View組件 307
11.2 UnityNetwork開發案例 308
11.2.1 場景搭建 308
11.2.2 腳本開發 311
11.2.3 服務器和客戶端的發布 316
11.3 本章小結 317
11.4 習題 317
第12章 課程設計——趣味小球 318
12.1 背景及功能概述 318
12.1.1 游戲背景概述 318
12.1.2 游戲功能簡介 319
12.2 游戲的策划及准備工作 320
12.2.1 游戲的策划 320
12.2.2 使用Unity 3D開發游戲前的准備工作 320
12.3 游戲的架構 322
12.3.1 游戲中各場景的簡要介紹 322
12.3.2 游戲的架構簡介 323
12.4 游戲場景 324
12.4.1 游戲主菜單場景 324
12.4.2 游戲UI層控制腳本開發 326
12.4.3 游戲物體運動控制腳本開發 329
12.4.4 游戲場景3D拾取和實例化腳本開發 331
12.4.5 輸贏場景開發 334
12.5 游戲的優化與改進 337
12.6 本章小結 337
參考文獻 338
1.1 初識Unity游戲開發引擎 1
1.1.1 Unity簡介 1
1.1.2 Unity的誕生與發展 1
1.1.3 Unity的特色 2
1.2 Unity集成開發環境的搭建 3
1.3 Unity集成開發環境的配置 6
1.3.1 Unity集成開發環境的整體布局 6
1.3.2 Unity菜單欄 7
1.3.3 Unity工具欄 7
1.3.4 Unity場景設計面板 8
1.3.5 游戲預覽面板 8
1.3.6 Unity項目資源列表 9
1.3.7 Unity屬性查看器 9
1.3.8 Unity狀態欄與控制台 10
1.3.9 菜單欄 10
1.4 本章小結 14
1.5 習題 14
第2章 Unity腳本程序基礎知識 15
2.1 Unity腳本概述 15
2.2 Unity中C#腳本的注意事項 15
2.3 Unity腳本的基礎語法 16
2.3.1 位移與旋轉 17
2.3.2 記錄時間 18
2.3.3 訪問游戲對象組件 20
2.3.4 訪問其他游戲對象 21
2.3.5 向量 25
2.3.6 成員變量和全局變量 27
2.3.7 實例化游戲對象 28
2.3.8 協同程序和中斷 29
2.3.9 一些重要的類 30
2.3.10 性能優化 34
2.3.11 腳本編譯 35
2.4 本章小結 36
2.5 習題 36
第3章 Unity3D圖形用戶界面基礎 37
3.1 GUI圖形用戶界面系統 37
3.1.1 Button控件 37
3.1.2 Label控件 40
3.1.3 DrawTexture控件 42
3.1.4 Box控件 44
3.1.5 TextField控件 46
3.1.6 PasswordField控件 48
3.1.7 TextArea控件 50
3.1.8 Toggle控件 51
3.1.9 SelectionGrid控件 53
3.1.10 HorizontalScrollbar控件與VerticalScrollbar控件 54
3.1.11 BeginGroup容器和EndGroup容器 56
3.1.12 BeginScrollView控件和EndScrollView控件 58
3.1.13 Window控件 60
3.1.14 skin皮膚 61
3.1.15 GUI圖形用戶界面的變量 64
3.2 UGUI圖形用戶界面系統 67
3.2.1 UGUI控件的創建及案例 67
3.2.2 Panel控件和Text控件 70
3.2.3 Button控件 72
3.2.4 Image控件和RawImage控件 74
3.2.5 Toggle控件 76
3.2.6 Slider控件和Scrollbar控件 77
3.2.7 InputField控件 79
3.2.8 UGUI布局管理 81
3.2.9 UGUI中不規則形狀按鈕的碰撞檢測 83
3.2.10 ScrollView的制作 86
3.3 預制件Prefab資源的應用 88
3.3.1 預制件Prefab資源的創建 88
3.3.2 通過Prefab資源進而實例化對象 89
3.4 常用的輸入對象 90
3.4.1 Touch輸入對象 90
3.4.2 Input輸入對象的主要變量 93
3.4.3 Input輸入對象的主要方法 94
3.5 與銷毀相關的方法 96
3.5.1 Object.Destroy方法 96
3.5.2 MonoBehavior.OnDestroy方法 97
3.6 本章小結 99
3.7 習題 99
第4章 物理引擎 100
4.1 剛體 100
4.1.1 剛體特性 100
4.1.2 物理管理器 106
4.2 碰撞器 107
4.2.1 碰撞器的添加 108
4.2.2 碰撞過濾 111
4.2.3 物理材質 114
4.3 粒子系統 117
4.3.1 粒子系統的創建 117
4.3.2 粒子系統特性 118
4.4 關節 121
4.4.1 鉸鏈關節 121
4.4.2 固定關節 124
4.4.3 彈簧關節 126
4.4.4 可配置關節 128
4.5 車輪碰撞器 131
4.5.1 車輪碰撞器的創建 131
4.5.2 車輪碰撞器的特性 131
4.6 布料 137
4.7 角色控制器 142
4.7.1 角色控制器的特性 142
4.7.2 角色控制器的應用 143
4.8 本章小結 145
4.9 習題 146
第5章 着色器編程基礎 147
5.1 初識着色器 147
5.1.1 着色器概述 147
5.1.2 ShaderLab語法基礎 147
5.2 表面着色器 152
5.2.1 着色器的三種形態 153
5.2.2 表面着色器基礎知識 153
5.3 渲染通道的通用指令 159
5.3.1 設置LOD數值 160
5.3.2 渲染隊列 162
5.3.3 Alpha測試 164
5.3.4 深度測試 166
5.3.5 通道遮罩 169
5.4 通過表面着色器實現體積霧 170
5.5 本章小結 176
5.6 習題 176
第6章 3D游戲開發常用技術 177
6.1 天空盒的應用 177
6.1.1 天空盒基礎知識 177
6.1.2 天空盒案例開發 179
6.23D拾取技術 182
6.2.13D拾取技術基本知識 182
6.2.23D拾取案例開發 183
6.3 虛擬搖桿與按鈕的使用 187
6.3.1 下載並導入標准資源包 187
6.3.2 虛擬搖桿與按鈕的案例開發 189
6.4 加速度傳感器 193
6.5 動態字體 198
6.6 聲音 201
6.6.1 聲音類型和音頻偵聽器 201
6.6.2 音頻源 201
6.6.3 音頻效果 203
6.6.4 案例開發 205
6.7 霧特效和水特效 209
6.7.1 霧特效和水特效的基礎知識 210
6.7.2 霧特效和水特效的案例開發 211
6.8 SQLite數據庫 214
6.8.1 SQLite數據庫的基本知識 214
6.8.2 SQLite數據庫的案例開發 215
6.9 本章小結 219
6.10 習題 219
第7章 光影效果的使用 220
7.1 光源 220
7.1.1 點光源和定向光源 220
7.1.2 聚光燈光源和區域光源 222
7.2 光照貼圖的烘焙和使用 224
7.2.1 光照設置 225
7.2.2 光照烘焙案例 228
7.3 反射探頭 230
7.3.1 反射探頭基本知識 230
7.3.2 反射探頭案例開發 233
7.4 法線貼圖 235
7.4.1 法線貼圖的基本知識 235
7.4.2 在Unity中使用法線貼圖 236
7.5 Unity 3D光照系統中的高級功能 237
7.5.1 光照系統中的小功能 238
7.5.2 陰影的設置 242
7.5.3 Light Probes光探頭 244
7.5.4 材質編輯器 246
7.6 本章小結 248
7.7 習題 248
第8章 模型與動畫 249
8.13D模型背景知識 249
8.1.1 主流3D建模軟件的介紹 249
8.1.2 Unity與建模軟件單位的比例關系 250
8.1.3 將3D模型導入Unity 250
8.2 網格——Mesh 252
8.2.1 網格過濾器(Mesh Filter) 252
8.2.2 Mesh屬性和方法介紹 252
8.2.3 Mesh的使用 253
8.3 骨骼結構映射——Avatar 259
8.3.1 Avatar的創建 259
8.3.2 Avatar的配置 259
8.3.3 Muscle的配置 261
8.4 動畫控制器 263
8.4.1 創建動畫控制器 263
8.4.2 動畫控制器的配置 263
8.5 角色動畫的重定向 269
8.5.1 重定向的原理 269
8.5.2 重定向的應用 269
8.6 本章小結 273
8.7 習題 273
第9章 地形與尋路技術 274
9.1 地形引擎 274
9.1.1 地形的創建 274
9.1.2 地形的基本操作 275
9.1.3 地形的紋理添加及參數設置 277
9.1.4 高度圖的使用 282
9.2 拖痕渲染器——Trail Renderer 283
9.2.1 拖痕渲染器的基礎知識 283
9.2.2 剎車痕案例制作 285
9.3 自動尋路技術 289
9.3.1 自動尋路技術基礎知識 289
9.3.2 小球尋路案例 292
9.4 本章小結 295
9.5 習題 295
第10章 游戲資源更新 296
10.1 初識AssetBundle 296
10.2 AssetBundle的基本使用 296
10.2.1 AssetBundle的打包 297
10.2.2 下載AssetBundle 299
10.2.3 AssetBundle的加載和卸載 301
10.3 AssetBundle相關知識 303
10.3.1 管理依賴 303
10.3.2 儲存和加載二進制文件 303
10.3.3 在資源中包含腳本 304
10.4 本章小結 305
10.5 習題 305
第11章 網絡開發基礎 306
11.1 網絡類——Network基礎 306
11.1.1 Network類 306
11.1.2 Network View組件 307
11.2 UnityNetwork開發案例 308
11.2.1 場景搭建 308
11.2.2 腳本開發 311
11.2.3 服務器和客戶端的發布 316
11.3 本章小結 317
11.4 習題 317
第12章 課程設計——趣味小球 318
12.1 背景及功能概述 318
12.1.1 游戲背景概述 318
12.1.2 游戲功能簡介 319
12.2 游戲的策划及准備工作 320
12.2.1 游戲的策划 320
12.2.2 使用Unity 3D開發游戲前的准備工作 320
12.3 游戲的架構 322
12.3.1 游戲中各場景的簡要介紹 322
12.3.2 游戲的架構簡介 323
12.4 游戲場景 324
12.4.1 游戲主菜單場景 324
12.4.2 游戲UI層控制腳本開發 326
12.4.3 游戲物體運動控制腳本開發 329
12.4.4 游戲場景3D拾取和實例化腳本開發 331
12.4.5 輸贏場景開發 334
12.5 游戲的優化與改進 337
12.6 本章小結 337
參考文獻 338
網路書店
類別
折扣
價格
-
新書87折$308