-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
Unity 3D腳本編程-使用C#語言開發跨平臺游戲 版權信息
- ISBN:9787121297182
- 條形碼:9787121297182 ; 978-7-121-29718-2
- 裝幀:暫無
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
Unity 3D腳本編程-使用C#語言開發跨平臺游戲 本書特色
本書以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的資源管理以及優化和編譯的內容。
Unity 3D腳本編程-使用C#語言開發跨平臺游戲 內容簡介
1. 微軟MVP張善友傾情作序,力薦本書。 2. 本書作者是2015年微軟MVP,博客園推薦博客博主,在游戲蠻牛及InfoQ網站發表過多篇文章。 3. 本書以Unity 3D的跨平臺基礎Mono及其游戲腳本語言C#為基礎進行講解,全面系統地剖析了Unity 3D的跨平臺原理以及游戲腳本開發的特點。 4. 無論是初次接觸Unity 3D腳本編程的新人,還是有一定經驗的老手,相信都可以借本書來提高自己在Unity 3D 方面的水平。
Unity 3D腳本編程-使用C#語言開發跨平臺游戲 目錄
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 章 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信息
Unity 3D腳本編程-使用C#語言開發跨平臺游戲 作者簡介
陳嘉棟,畢業于大連海事大學,目前任光宇在線客戶端高級開發工程師。博客園推薦博客作者,微軟2015年度Visual Studio and Development Technologies最有價值專家(Most Valuable Professional)。認為編程首先是愛好,其次才是職業。專注前沿技術,熱愛開源。深信代碼改變世界。 沒有值得吹噓的項目,只有不斷前行的動力。
- >
苦雨齋序跋文-周作人自編集
- >
自卑與超越
- >
隨園食單
- >
有舍有得是人生
- >
伊索寓言-世界文學名著典藏-全譯本
- >
史學評論
- >
名家帶你讀魯迅:朝花夕拾
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)