-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Unity 3D腳本編程——使用C#語言開發跨平臺游戲

( 簡體 字)
作者:陳嘉棟類別:1. -> 多媒體 -> 遊戲引擎 -> Unity
譯者:
出版社:電子工業出版社Unity 3D腳本編程——使用C#語言開發跨平臺游戲 3dWoo書號: 45137
詢問書籍請說出此書號!

缺書
NT售價: 395

出版日:9/1/2016
頁數:404
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121297182
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序
Unity 3D 是由兩個具有巨大吸引力而極其令人愉悅的領域混合而成的——C#語言和游戲開發。Unity 團隊設計Unity 3D 將這兩者有機地結合起來。
對于C#語言的喜愛要回溯至2000 年,當時微軟向世界推出了新的語言C#,不僅震驚了
Windows 領域,它同時也震驚了開源世界。GNOME 項目的領導者Meguel de Icaza 就看到了C#語言在桌面開發的前景,著手創建了開源的.NET 跨平臺實現Mono,如今Mono 已經用于從嵌入式系統到服務器、工業控制、移動開發和游戲的所有方面。.NET 語言不僅確保了我們不再受限于某一種當下的語言,而且確保了我們可以繼續重用之前使用C 和C++編寫的現有代碼,C#使我們和我們所處的世界更加高效。隨著微軟成立.NET 基金會,大力發展開源跨平臺的.NET,同時Unity 公司也是.NET 基金會成員,我們有理由相信使用C#的Unity 3D 平臺也會發展得更好。
正如Unity Technologies 的CEO David Helgason 先生所說:“Unity 是一個用來構建游戲的工具箱,它整合了圖像、音頻、物理引擎、人機交互以及網絡等技術。”Unity 3D 因為它的快速開發以及跨平臺能力而為人所知。Unity 3D 的快速開發和跨平臺能力正是來自于它對Mono平臺和C#語言的依賴,使用C/C++來編寫高性能要求的引擎代碼,針對開發人員采用高級的C#、UnityScript、Boo 語言作為游戲開發的腳本。
本書作者陳嘉棟帶著激情投身于Unity 游戲開發,他在Unity 社區也非常活躍,他也通過博客寫了大量和Unity 3D 相關的文章,如今他將這些在社區上的貢獻匯集成這樣一個涉及Unity 3D 跨平臺原理分析、Unity 3D 和Mono 的結合,以及在游戲腳本編程中使用C#語言的作品。希望無論是初次接觸Unity 3D 腳本編程的新人,還是有一定經驗的老手都能對Unity 3D 了解得更全面深刻,對C#語言在開發游戲腳本過程中的知識點掌握得更牢固,寫出更高效的代碼。
使用C#和Unity 3D 構建游戲是一件極佳的事情。你能夠使用一種強類型的、類型安全的、垃圾回收的、具有最熱門API 的語言來開發游戲,下面開始學習陳嘉棟創作的這本佳作吧!
微軟MVP 張善友
2016.7.13 書于 深圳
內容簡介:

本書以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# 或 JavaScript .......... 48
2.4.1 最熟悉的陌生人——UnityScript .......... 48
2.4.2 UnityScript 與 JavaScript ............. 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<T>數組 .............. 102
4.4 C#中的鏈表——LinkedList<T> .......... 103
4.5 隊列(Queue<T>)和棧(Stack<T>) ........ 107
4.6 Hash Table(哈希表)和Dictionary<K,T>(字典) ....... 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
第10 章 從序列化和反序列化看Unity 3D 的存儲機制 ....... 281
10.1 初識序列化和反序列化............ 281
10.2 控制類型的序列化和反序列化 .......... 290
10.2.1 如何使類型可以序列化 ............ 290
10.2.2 如何選擇序列化的字段和控制反序列化的流程 ....... 292
10.2.3 序列化、反序列化中流的上下文介紹及應用 ....... 296
10.3 Unity 3D 中的序列化和反序列化 .......... 299
10.3.1 Unity 3D 的序列化概覽 ........... 299
10.3.2 對Unity 3D 游戲腳本進行序列化的注意事項 ........ 302
10.3.3 如何利用Unity 3D 提供的序列化器對自定義類型進行序列化 .... 305
10.4 Prefab 和實例化之謎——序列化和反序列化的過程 ....... 309
10.4.1 認識預制體Prefab ............. 309
10.4.2 實例化一個游戲對象 ............ 311
10.4.3 序列化和反序列化之謎 ............ 314
10.5 本章總結 ............. 317
第11 章 移動平臺動態讀取外部文件 ........... 318
11.1 假如我想在編輯器里動態讀取文件 .......... 318
11.2 移動平臺的資源路徑問題 .......... 320
11.3 移動平臺讀取外部文件的方法 .......... 323
11.4 使用Resources 類加載資源 ........... 330
11.5 使用WWW類加載資源 ............ 332
11.5.1 利用WWW類的構造函數實現資源下載 ........ 332
11.5.2 利用 WWW.LoadFromCacheOrDownload 方法實現資源下載 ..... 333
11.5.3 利用WWWForm 類實現POST 請求 ......... 335
11.6 本章總結 ............. 335
第12 章 在Unity 3D 中使用AssetBundle.......... 336
12.1 初識AssetBundle ............ 336
12.2 使用AssetBundle 的工作流程 ........... 337
12.2.1 開發階段 .............. 337
12.2.2 運行階段 .............. 340
12.3 如何使用本地磁盤中的AssetBundle 文件........ 344
12.4 AssetBundle 文件的平臺兼容性 .......... 345
12.5 AssetBundle 如何識別資源 .......... 345
12.6 本章總結 ............. 346
第13 章 Unity 3D 優化 ............. 347
13.1 看看Unity 3D 優化需要從哪里著手 ......... 347
13.2 CPU 方面的優化 ............. 348
13.2.1 對DrawCall 的優化 ............. 348
13.2.2 對物理組件的優化 ............ 354
13.2.3 處理內存,卻讓CPU 受傷的GC........... 355
13.2.4 對代碼質量的優化 ............ 356
13.3 對GPU 的優化 ............ 357
13.3.1 減少繪制的數目 .............. 358
13.3.2 優化顯存帶寬 .............. 358
13.4 內存的優化 ............. 359
13.4.1 Unity 3D 的內部內存 ............. 359
13.4.2 Mono 的托管內存 ............ 360
13.5 本章總結 ............. 363
第14 章 Unity 3D 的腳本編譯 ............ 365
14.1 Unity 3D 腳本編譯流程概覽 .......... 365
14.2 JIT 即時編譯 ............. 368
14.2.1 使用編譯器將游戲腳本編譯為托管模塊 ......... 368
14.2.2 托管模塊和程序集 ............ 369
14.2.3 使用JIT 編譯執行程序集的代碼.......... 370
14.2.4 使用JIT 即時編譯的優勢 ........... 371
14.3 AOT 提前編譯 ............ 372
14.3.1 在Unity 3D 中使用AOT 編譯 .......... 372
14.3.2 iOS 平臺和Full-AOT 編譯 ............ 373
14.3.3 AOT 編譯的優勢 ............. 374
14.4 誰偷了我的熱更新?Mono、JIT 還是iOS ....... 374
14.4.1 從一個常見的報錯說起 ............ 375
14.4.2 美麗的JIT .............. 377
14.4.3 模擬JIT 的過程 ............. 378
14.4.4 iOS 平臺的自我保護 ............. 381
14.5 Unity 3D 項目的編譯與發布 .......... 382
14.5.1 選擇游戲場景和目標平臺 ............ 382
14.5.2 Unity 3D 發布項目的內部過程 ........... 384
14.5.3 Unity 3D 部署到Android 平臺 .......... 384
14.5.4 Unity 3D 部署到iOS 平臺 ........... 386
14.6 本章總結 ............. 389
序: