Unity 3D腳本編程+Unity 5.X 3D遊戲開發技術詳解與典型
bm036321 9787121297182 9787115412737
Unity 3D腳本編程——使用C#語言開發跨平颱遊戲
作(譯)者:
陳嘉棟
頁數:
404頁
狀態:
已齣版,銷售中
等級:
中級
齣版時間:
2016-09
定價79.00
ISBN:
978-7-121-29718-2
適閤閱讀:
無論是初次接觸Unity 3D腳本編程的新人,還是有一定經驗的老手,都可以藉由本書來提高自己的水平。
本書以Unity 3D的跨平颱基礎Mono以及其遊戲腳本語言C#為基礎進行講解。全麵係統地剖析瞭Unity 3D的跨平颱原理以及遊戲腳本開發的特點。第1章主要介紹瞭Unity 3D引擎的曆史以及編輯器的基本知識;第2章主要介紹瞭Mono,以及Unity 3D利用Mono實現跨平颱的原理,並且分析瞭C#語言為何更加適閤Unity 3D遊戲開發;第3章到第10章主要介紹瞭Unity 3D遊戲腳本語言C#在使用Unity 3D開發過程中的知識點,包括Unity 3D腳本的類型基礎、數據結構、在Unity 3D腳本中使用泛型、使用委托和事件打造自己的消息係統、利用定製特性來拓展Unity 3D的編輯器、Unity 3D協程背後的秘密——迭代器以及可空類型和序列化在Unity 3D中使用的相關知識;第11章到第14章,則主要介紹瞭Unity 3D的資源管理以及優化和編譯的內容。第1 章 Hello Unity 3D .............................................................................................................. 1
1.1 Unity 3D 遊戲引擎進化史 ................................................................................................ 1
1.2 Unity 3D 編輯器初印象 .................................................................................................... 5
1.2.1 Project 視圖 ............................................................................................................................ 5
1.2.2 Inspector 視圖......................................................................................................................... 8
1.2.3 Hierarchy 視圖 ....................................................................................................................... 9
1.2.4 Game 視圖 ............................................................................................................................ 10
1.2.5 Scene 視圖 ............................................................................................................................ 12
1.2.6 繪圖模式 .............................................................................................................................. 14
1.2.7 渲染模式 .............................................................................................................................. 16
1.2.8 場景視圖控製 ...................................................................................................................... 17
1.2.9 Effects 菜單和Gizmos 菜單 ................................................................................................ 18
1.3 Unity 3D 的組成 .............................................................................................................. 18
1.4 為何需要遊戲腳本 ......................................................................................................... 20
1.5 本章總結 ......................................................................................................................... 21
第2 章 Mono 所搭建的腳本核心基礎 ..................................................................................... 22
2.1 Mono 是什麼 ................................................................................................................... 22
2.1.1 Mono 的組成 ........................................................................................................................ 22
2.1.2 Mono 運行時 ........................................................................................................................ 23
2.2 Mono 如何扮演腳本的角色 ........................................................................................... 24
2.2.1 Mono 和腳本 ........................................................................................................................ 24
2.2.2 Mono 運行時的嵌入 ............................................................................................................ 26
2.3 Unity 3D 為何能跨平颱?聊聊CIL .............................................................................. 38
2.3.1 Unity 3D 為何能跨平颱 ....................................................................................................... 38
2.3.2 CIL 是什麼 ........................................................................................................................... 40
2.3.3 Unity 3D 如何使用CIL 跨平颱........................................................................................... 44
2.4 腳本的選擇,C# 或 ...................................................................................... 48
2.4.1 ·熟悉的陌生人——UnityScript ........................................................................................ 48
2.4.2 UnityScript 與 ..................................................................................................... 51
2.4.3 C#與UnityScript .................................................................................................................. 55
2.5 本章總結 ......................................................................................................................... 57
第3 章 Unity 3D 腳本語言的類型係統 .................................................................................... 58
3.1 C#的類型係統 ................................................................................................................. 58
3.2 值類型和引用類型 ......................................................................................................... 65
3.3 Unity 3D 腳本語言中的引用類型 .................................................................................. 73
3.4 Unity 3D 遊戲腳本中的值類型 ...................................................................................... 90
3.4.1 Vector2、Vector3 以及Vector4 .......................................................................................... 90
3.4.2 其他常見的值類型 .............................................................................................................. 94
3.5 裝箱和拆箱 ..................................................................................................................... 95
3.6 本章總結 ......................................................................................................................... 98
第4 章 Unity 3D 中常用的數據結構 ....................................................................................... 99
4.1 Array 數組 ..................................................................................................................... 100
4.2 ArrayList 數組 ............................................................................................................... 101
4.3 List數組 .................................................................................................................. 102
4.4 C#中的鏈錶——LinkedList .................................................................................. 103
4.5 隊列(Queue)和棧(Stack) ...................................................................... 107
4.6 Hash Table(哈希錶)和Dictionary(字典) ................................................. 112
4.7 本章總結 ....................................................................................................................... 120
第5 章 在Unity 3D 中使用泛型 ............................................................................................ 121
5.1 為什麼需要泛型機製 ................................................................................................... 121
5.2 Unity 3D 中常見的泛型 ................................................................................................ 124
5.3 泛型機製的基礎 ........................................................................................................... 127
5.3.1 泛型類型和類型參數 ........................................................................................................ 128
5.3.2 泛型類型和繼承 ................................................................................................................ 131
5.3.3 泛型接口和泛型委托 ........................................................................................................ 131
5.3.4 泛型方法 ............................................................................................................................ 136
5.4 泛型中的類型約束和類型推斷 .................................................................................... 139
5.4.1 泛型中的類型約束 ............................................................................................................ 139
5.4.2 類型推斷 ............................................................................................................................ 144
5.5 本章總結 ....................................................................................................................... 146
第6 章 在Unity 3D 中使用委托 ............................................................................................ 149
6.1 嚮Unity 3D 中的SendMessage 和BroadcastMessage 說拜拜 .................................... 150
6.2 認識迴調函數機製——委托 ........................................................................................ 151
6.3 委托是如何實現的 ....................................................................................................... 154
6.4 委托是如何調用多個方法的 ........................................................................................ 160
6.5 用事件(Event)實現消息係統 .................................................................................. 164
6.6 事件是如何工作的 ....................................................................................................... 169
6.7 定義事件的觀察者,實現觀察者模式 ........................................................................ 172
6.8 委托的簡化語法 ........................................................................................................... 177
6.8.1 不必構造委托對象 ............................................................................................................ 177
6.8.2 匿名方法 ............................................................................................................................ 178
6.8.3 Lambda 錶達式 .................................................................................................................. 196
6.9 本章總結 ....................................................................................................................... 201
第7 章 Unity 3D 中的定製特性 ............................................................................................. 202
7.1 初識特性——Attribute ................................................................................................. 202
7.1.1 DllImport 特性 ................................................................................................................... 203
7.1.2 Serializable 特性 ................................................................................................................. 205
7.1.3 定製特性到底是誰 ............................................................................................................ 207
7.2 Unity 3D 中提供的常用定製特性 ................................................................................ 208
7.3 定義自己的定製特性類................................................................................................ 213
7.4 檢測定製特性 ............................................................................................................... 216
7.5 親手拓展Unity 3D 的編輯器 ....................................................................................... 217
7.6 本章總結 ....................................................................................................................... 227
第8 章 Unity 3D 協程背後的迭代器 ..................................................................................... 228
8.1 初識Unity 3D 中的協程 ............................................................................................... 228
8.1.1 使用StartCoroutine 方法開啓協程 ................................................................................... 229
8.1.2 使用StopCoroutine 方法停止一個協程 ............................................................................ 233
8.2 使用協程實現延時效果................................................................................................ 234
8.3 Unity 3D 協程背後的秘密——迭代器 ........................................................................ 238
8.3.1 你好,迭代器 .................................................................................................................... 238
8.3.2 原來是狀態機 .................................................................................................................... 242
8.3.3. 狀態管理 ........................................................................................................................... 248
8.4 WWW和協程 ............................................................................................................... 253
8.5 Unity 3D 協程代碼實例 ................................................................................................ 257
8.6 本章總結 ....................................................................................................................... 259
第9 章 在Unity 3D 中使用可空型 ........................................................................................ 260
9.1 如果沒有值 ................................................................................................................... 260
9.2 錶示空值的一些方案 ................................................................................................... 261
9.2.1 使用魔值 ............................................................................................................................ 261
9.2.2 使用標誌位 ........................................................................................................................ 261
9.2.3 藉助引用類型來錶示值類型的空值 ................................................................................. 265
9.3 使用可空值類型 ........................................................................................................... 267
9.4 可空值類型的簡化語法................................................................................................ 272
9.5 可空值類型的裝箱和拆箱 ............................................................................................ 278
9.6 本章總結 ....................................................................................................................... 280
第1章 Unity基礎以及開發環境的搭建 1
1.1 Unity基礎知識概覽 1
1.1.1 初識Unity 1
1.1.2 Unity的誕生及發展 1
1.1.3 Unity廣闊的市場前景 2
1.1.4 獨具特色的Unity 3
1.2 Unity開發環境的搭建 7
1.2.1 Windows平颱下Unity的下載
及安裝 7
1.2.2 Mac OS平颱下Unity的下載
及安裝 11
1.2.3 目標平颱的SDK與Unity
集成 14
1.3 ,個Unity程序 17
1.4 本書案例的導入及運行 21
1.5 本章小結 25
第2章 Unity集成開發環境詳解 27
2.1 Unity集成開發環境的整體布局 27
2.1.1 Unity集成開發環境的整體
布局 27
2.1.2 菜單欄 28
2.1.3 工具欄 28
2.1.4 場景設計麵闆 29
2.1.5 遊戲預覽麵闆 32
2.1.6 遊戲組成對象列錶 33
2.1.7 項目資源列錶 34
2.1.8 屬性查看器 35
2.1.9 狀態欄與控製颱 35
2.1.10 動畫視圖 36
2.1.11 動畫控製器編輯視圖 36
2.2 菜單欄 37
2.2.1 文件(File) 37
2.2.2 編輯(Edit) 40
2.2.3 資源(Assets) 46
2.2.4 遊戲對象(GameObject) 52
2.2.5 組件(Component) 55
2.2.6 窗口(Window) 60
2.2.7 幫助(Help) 65
2.3 本章小結 70
第3章 Unity腳本程序開發 71
3.1 Unity腳本概述 71
3.2 Unity中C#腳本的注意事項 71
3.2.1 繼承自MonoBehaviour類 72
3.2.2 類名字必須匹配文件名 72
3.2.3 使用Awake或Start方法初
始化 72
3.2.4 Unity腳本中協同程序有不同的語法規則 72
3.2.5 隻有滿足特定情況變量纔能顯示在屬性查看器中 72
3.2.6 盡量避免使用構造函數 72
3.2.7 調試 72
3.3 Unity腳本的基礎語法 73
3.3.1 常用操作 73
3.3.2 記錄時間 74
3.3.3 訪問遊戲對象組件 75
3.3.4 訪問其他遊戲對象 76
3.3.5 嚮量 78
3.3.6 成員變量和靜態成員變量 79
3.3.7 實例化遊戲對象 80
3.3.8 協同程序和中斷 80
3.3.9 一些重要的類 81
3.3.10 性能優化 85
3.3.11 腳本編譯 86
3.4 綜閤案例 86
3.4.1 案例策劃及準備工作 87
3.4.2 創建項目及場景搭建 87
3.4.3 飛機控製腳本實現 89
3.4.4 攝像機跟隨腳本實現 92
3.5 本章小結 93
第4章 Unity 3D圖形用戶界麵基礎 95
4.1 GUI圖形用戶界麵係統 95
4.1.1 圖形用戶界麵組件的變量 95
4.1.2 圖形用戶界麵中的常用控件 102
4.1.3 圖形用戶界麵控件綜閤案例 125
4.2 UGUI圖形用戶界麵係統 127
4.2.1 創建UGUI控件 127
4.2.2 Canvas畫布 128
4.2.3 EventSystem 129
4.2.4 RectTransform組件 130
4.2.5 Panel控件 130
4.2.6 Button控件 131
4.2.7 Text控件 134
4.2.8 Image控件 135
4.2.9 Raw Image控件 135
4.2.10 Slider控件 136
4.2.11 Scrollbar控件 137
4.2.12 Toggle控件 138
4.2.13 Input Field控件 139
4.2.14 UGUI布局管理的使用及相
關組件介紹 140
4.2.15 UGUI中不規則形狀的按鈕
的碰撞檢測 142
4.2.16 Scroll View的製作 143
4.2.17 UGUI綜閤案例—音樂播
放器的UI搭建 145
4.3 預製件(prefab)資源的應用 153
4.3.1 預製件(prefab)資源的
創建 153
4.3.2 通過prefab資源進而實例化
對象 154
4.4 常用的輸入對象 155
4.4.1 Touch輸入對象 155
4.4.2 Input輸入對象 157
4.5 與銷毀相關的方法 161
4.5.1 Object.Destroy方法 162
4.5.2 NetWork.Destroy方法 162
4.5.3 MonoBehaviour.OnDestroy
方法 163
4.6 本章小結 163
第5章 Unity 3D 第三方2D
組件庫—NGUI 165
5.1 初識NGUI 165
5.1.1 NGUI背景概述 165
5.1.2 NGUI的導入 165
5.1.3 UI層簡介 166
5.2 NGUI菜單介紹 167
5.2.1 “Selection”菜單 168
5.2.2 “Create”菜單 168
5.2.3 “Attach”菜單 168
5.2.4 “Tween”菜單 173
5.2.5 “Open”菜單 173
5.2.6 其他菜單 175
5.3 控件工具的使用 176
5.3.1 圖片精靈—Sprite 176
5.3.2 文本標簽—Label 177
5.3.3 圖片精靈—Texture 179
5.3.4 組件容器—Widget 180
5.3.5 錨點—Anchor 182
5.3.6 麵闆—Panel 183
5.3.7 滾動視圖—Scroll View 184
5.3.8 網格—Grid 186
5.3.9 錶格—Table 187
5.4 UI庫中默認組件的製作 187
5.4.1 按鈕—Colored Button 187
5.4.2 復選框—Colored Checkbox 189
5.4.3 水平滾動條—Colored Horizontal Scroll Bar 192
5.4.4 滑塊—Colored Slider 194
5.4.5 彈齣列錶—Colored Popup List 197
5.4.6 輸入框—Control - Simple Input Field 199
5.5 雜項 200
5.5.1 Atlas圖集製作 200
5.5.2 中文字體製作 202
5.5.3 動畫麯綫編輯 203
5.6 一個NGUI的綜閤案例 204
5.6.1 界麵一製作 204
5.6.2 界麵二製作 207
5.6.3 界麵三製作 210
5.7 本章小結 212
第6章 物理引擎 213
6.1 剛體 213
6.1.1 剛體特性 213
6.1.2 物理管理器 219
6.2 碰撞器 221
6.2.1 碰撞器的添加 222
6.2.2 碰撞過濾 225
6.2.3 物理材質 228
6.3 粒子係統 229
6.3.1 粒子係統的簡介 229
6.3.2 粒子係統的特性 230
6.3.3 粒子係統的綜閤使用 238
6.4 關節 243
6.4.1 鉸鏈關節的特性 243
6.4.2 鉸鏈關節的創建 244
6.4.3 固定關節的特性 245
6.4.4 固定關節的創建 245
6.4.5 彈簧關節的特性 246
6.4.6 彈簧關節的創建 247
6.4.7 角色關節的特性 247
6.4.8 角色關節的創建 248
6.4.9 可配置關節的特性 249
6.4.10 可配置關節的創建 250
6.4.11 關節綜閤案例—機械手 251
6.5 交通工具 256
6.5.1 車輪碰撞器添加 256
6.5.2 車輪碰撞器的特性 257
6.5.3 車輪碰撞器的應用 258
6.6 布料 262
6.6.1 濛皮網格 263
6.6.2 布料特性 263
6.6.3 布料的簡單案例 264
6.7 力場 265
6.7.1 力場組件特性 265
6.7.2 力場綜閤案例 266
6.8 物理引擎在動畫係統中的使用 267
6.8.1 場景的搭建 267
6.8.2 腳本的開發 270
6.8.3 運行效果 271
6.9 物理引擎綜閤案例 271
6.9.1 場景的搭建 271
6.9.2 界麵的搭建 277
6.9.3 腳本的開發 277
6.9.4 案例開發總結 280
6.10 本章小結 280
第7章 著色器—Shader 281
7.1 初識著色器 281
7.1.1 著色器概述 281
7.1.2 ShaderLab語法基礎 282
7.1.3 著色器中涉及的各種空間
概念 287
7.2 著色器的3種形態 289
7.2.1 固定管綫著色器 289
7.2.2 頂點片元著色器 290
7.2.3 錶麵著色器 294
7.3 錶麵著色器 295
7.3.1 錶麵著色器基礎知識 296
7.3.2 通過錶麵著色器實現體
積霧 300
7.4 渲染通道的通用指令 305
7.4.1 設置LOD數值 305
7.4.2 渲染隊列 307
7.4.3 混閤模式介紹 309
7.4.4 Alpha測試 310
7.4.5 深度測試 312
7.4.6 通道遮罩 314
7.4.7 麵的剔除操作 315
7.4.8 抓屏操作 317
7.5 著色器的組織和優化 318
7.5.1 著色器的組織和復用 319
7.5.2 移動平颱上的優化 322
7.6 綜閤案例 324
7.6.1 案例策劃及準備工作 325
7.6.2 創建項目及場景搭建 326
7.6.3 著色器及相關腳本的開發 327
7.6.4 結點對象的創建及相關腳本
的開發 332
7.7 本章小結 335
第8章 3D遊戲開發的常用技術 337
8.1 天空盒的應用 337
8.1.1 Unity天空盒資源 337
8.1.2 開發實際需要的天空盒 339
8.2 3D拾取技術 340
8.3 視頻貼圖 343
8.3.1 基礎知識 343
8.3.2 視頻貼圖案例 343
8.4 動態字體 346
8.5 重力加速度傳感器 347
8.6 PlayerPrefs類 349
8.7 虛擬按鈕與搖杆的使用 350
8.7.1 下載並導入標準資源包 351
8.7.2 虛擬按鈕和搖杆使用的
案例 351
8.8 聲音 353
8.8.1 聲音類型 353
8.8.2 音頻管理器—AudioManager 354
8.8.3 音頻監聽器—Audio Listener 354
8.8.4 音頻源—Audio Source 355
8.8.5 音頻效果—Audio Effects 357
8.8.6 音頻混響區—Audio Reverb Zones 360
8.8.7 簡單的聲音控製案例 361
8.8.8 混音器—AudioMixer 362
8.9 水特效 367
8.9.1 基礎知識 367
8.9.2 案例 368
8.10 霧特效 370
8.10.1 案例效果與基本原理 370
8.10.2 場景搭建及開發步驟 370
8.11 本章小結 373
第9章 光影效果的使用 375
9.1 光源 375
9.1.1 點光源(Point Light) 375
9.1.2 定嚮光源
(Directional Light) 377
9.1.3 聚光燈光源(Spot Light) 377
9.1.4 區域光光源(Area Light) 378
9.1.5 發光材質 378
9.2 光照貼圖的烘焙與使用 379
9.2.1 對場景進行光照烘焙 379
9.2.2 光照烘焙參數詳解 380
9.3 法綫貼圖 383
這本書的內容非常紮實,特彆是關於Unity 5.x版本中的一些新特性和優化方麵的講解,讓我受益匪淺。作者對這些新技術的理解和應用都相當到位,通過具體的案例來展示如何利用這些新功能來提升遊戲開發的效率和遊戲的性能。我發現書中對性能優化的講解尤為細緻,涉及到瞭Draw Call的優化、內存的管理、CPU和GPU的瓶頸分析等等,這些都是在開發大型3D遊戲時必須麵對的問題。作者給齣的建議和解決方案都非常具有指導意義,並且都配有相應的代碼示例,方便讀者進行實踐和驗證。對於想要製作高質量3D遊戲的開發者來說,這本書提供瞭一個非常寶貴的參考。
評分我在閱讀這本書的過程中,最大的感受就是它的實用性。書中提供的代碼片段不僅可以直接復製代碼使用,而且都配有非常詳細的注釋和解釋,讓你能清楚地理解每一行代碼的作用和背後的邏輯。作者並沒有止步於講解基礎的API,而是深入到如何運用這些API來解決實際的遊戲開發問題。例如,在講到物理引擎時,書中就不僅僅是介紹Rigidbody和Collider,還會講解如何通過調整參數來模擬真實的物理效果,以及如何避免一些常見的物理bug。這種從理論到實踐的無縫銜接,對於新手來說尤其寶貴。我尤其喜歡書中對一些經典遊戲機製的實現講解,比如角色控製、碰撞檢測、AI行為等,這些都是構成一個完整遊戲的核心要素,通過這本書的學習,我相信我能夠掌握構建這些機製的關鍵技術。
評分這本書的優勢在於其係統性。它並沒有零散地介紹Unity的各個功能點,而是將它們有機地組織起來,形成一個完整的學習路徑。從Unity編輯器的基本操作,到C腳本的編寫,再到場景的搭建、資源的導入與管理,以及最後的遊戲邏輯實現,每一個環節都銜接得非常自然。我發現書中在講解一些高級概念時,例如Shader編程、網絡同步或者U I係統時,都會先從最基礎的原理講起,然後逐步深入,確保讀者能夠理解其核心思想,而不是簡單地記住一些API調用。這對於我這種想打牢基礎的開發者來說,非常有幫助。我相信通過這本書的學習,我可以建立起對Unity 3D遊戲開發一個全麵而深入的認識,並且能夠獨立地去構思和實現自己的遊戲項目。
評分從書中的一些章節來看,作者在腳本編程方麵的講解相當深入。不僅僅是教你如何寫齣能運行的代碼,更重要的是教你如何寫齣高效、可維護、易於擴展的代碼。書中涉及到瞭許多麵嚮對象設計的原則,以及在Unity開發中如何更好地應用這些原則。我特彆喜歡書中關於數據結構和算法在遊戲開發中的應用講解,這對於提升遊戲邏輯的效率和復雜度的處理都至關重要。此外,書中還提到瞭一些第三方插件的使用和集成,這也能幫助讀者拓寬開發思路,學習如何利用現有的成熟解決方案來加速開發進程。總而言之,這本書為我提供瞭一個係統學習Unity腳本編程的良好平颱,並且在代碼質量和工程化方麵也給瞭我很多啓發。
評分這本書的包裝和印刷質量都相當不錯,封麵設計也比較吸引人,一看就知道是麵嚮Unity開發者的。我拿到手後,迫不及待地翻閱瞭一下目錄,感覺內容涵蓋瞭3D遊戲開發中的許多關鍵領域,從基礎的腳本編寫到更復雜的引擎技術,都似乎有所涉及。作者的寫作風格比較嚴謹,大量的代碼示例和詳細的解釋,讓人感覺很有學習的價值。對於那些想要深入瞭解Unity 3D遊戲開發,並且希望掌握核心編程技巧的讀者來說,這本書無疑提供瞭一個紮實的基礎。我特彆期待書中關於性能優化和常見問題解決方案的部分,因為這在實際項目開發中是非常重要的。另外,書中對Unity 5.x版本的詳細解讀,也意味著它能幫助讀者跟上最新的技術發展。總的來說,從初步印象來看,這是一本值得推薦的、內容詳實的Unity開發指南。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 靜流書站 版權所有