Unity 和 C# 游戲編程入門, 5/e (Learning C# by Developing Games with Unity 2020 : An enjoyable and intuitive approach to getting started with C# programming and Unity, 5/e)
內容描述
主要內容: ●通過簡單易懂的步驟和示例學習C#基礎編程 ●掌握如何在L Jnity中創建和應用腳本 ●用C#實現諸如角色控制和射擊等基本游戲機制 ●理解接口與抽象類的概念 ●利用**版C#的強大功能解決復雜的編程問題 ●熟悉堆棧、隊列、異常、錯誤處理等其他C#核心概念 ●探索游戲中人工智能( AI )的基礎知識並將其應用於 控制敵人行為
目錄大綱
目 錄
第1章瞭解開發環境 .............................................................................1
1.1 技術要求 ................................................................................................. 2
1.2 Unity 2020入門 ..................................................................................... 2
1.2.1 使用 macOS....................................................................................................7
1.2.2 創建一個新項目 .............................................................................................9
1.2.3 瀏覽編輯器 .................................................................................................. 10
1.3 在 Unity中使用 C# ............................................................................. 12
1.3.1 使用 C#腳本................................................................................................ 12
1.3.2 Visual Studio編輯器介紹 ........................................................................... 14
1.3.3 同步 C#文件................................................................................................ 16
1.4 探討技術文檔 ...................................................................................... 17
1.4.1 訪問 Unity的技術文檔 .............................................................................. 17
1.4.2 查找 C#資源................................................................................................ 19
1.5 本章小結 ............................................................................................... 21
1.6 小測驗——關於腳本 ........................................................................... 21
第2章編程的構成要素 ........................................................................22
2.1 變量的定義 ........................................................................................... 23
2.1.1 變量的名稱很重要 ..................................................................................... 24
2.1.2 變量充當占位符 .......................................................................................... 24
2.2 瞭解方法 ............................................................................................... 27
2.2.1 方法驅動行為 .............................................................................................. 28
2.2.2 方法也是占位符 .......................................................................................... 28
2.3 介紹類 ................................................................................................... 30
2.3.1 一個常用的 Unity類 .................................................................................. 31
2.3.2 類就像藍圖 .................................................................................................. 31
2.4 使用註釋 ............................................................................................... 32
2.4.1 實用的反斜杠 .............................................................................................. 33
2.4.2 多行註釋 ...................................................................................................... 33
2.5 將基礎模塊整合在一起 ...................................................................... 34
2.5.1 腳本成為組件 .............................................................................................. 35
2.5.2 來自 MonoBehavior的助力....................................................................... 36
2.6 類之間的通信 ...................................................................................... 37
2.7 本章小結 ............................................................................................... 38
2.8 小測驗 —— C#的構成要素 ................................................................ 38
第3章深入研究變量、類型和方法 .....................................................39
3.1 編寫符合規範的 C#代碼 .................................................................... 40
3.2 調試代碼 ............................................................................................... 41
3.3 聲明變量 ............................................................................................... 42
3.3.1 同時聲明類型和值 ..................................................................................... 43
3.3.2 僅聲明類型 .................................................................................................. 43
3.4 使用訪問修飾符 .................................................................................. 44
3.5 瞭解數據類型 ...................................................................................... 46
3.5.1 通用內置類型 .............................................................................................. 46
3.5.2 類型轉換 ...................................................................................................... 49
3.5.3 推斷式聲明 .................................................................................................. 50
3.5.4 自定義類型 .................................................................................................. 51
3.5.5 類型綜述 ...................................................................................................... 51
3.6 命名變量 ............................................................................................... 52
3.7 瞭解變量的作用域 .............................................................................. 53
3.8 運算符 ................................................................................................... 54
3.9 定義方法 ............................................................................................... 57
3.9.1 基本語法 ...................................................................................................... 57
3.9.2 修飾符和參數 .............................................................................................. 58
3.10 指定參數............................................................................................. 61
3.11指定返回值 ......................................................................................... 63
3.12 剖析常見的 Unity方法..................................................................... 66
3.12.1 Start( )方法................................................................................................. 67
3.12.2 Update( )方法............................................................................................. 67
3.13 本章小結............................................................................................. 68
3.14 小測驗——變量和方法 ................................................................... 69
第4章控制流和集合類型 ....................................................................70
4.1 選擇語句 ............................................................................................... 71
4.1.1 if-else語句................................................................................................... 71
4.1.2 switch語句................................................................................................... 80
4.1.3 小測驗 —— if語句與邏輯運算符 ............................................................84
4.2 初識集合 ............................................................................................... 84
4.2.1 數組 .............................................................................................................. 85
4.2.2 列表 .............................................................................................................. 87
4.2.3 字典 .............................................................................................................. 90
4.2.4 小測驗——集合 .......................................................................................... 94
4.3 迭代語句 ............................................................................................... 94
4.3.1 for循環 ........................................................................................................ 94
4.3.2 foreach循環................................................................................................. 97
4.3.3 while循環.................................................................................................... 99
4.3.4 超越無限 ....................................................................................................101
4.4 本章小結 ............................................................................................. 102
第5章類、結構體和 OOP ................................................................103
5.1 定義類 ................................................................................................. 104
5.1.1 基本語法 ....................................................................................................104
5.1.2 實例化類對象 ............................................................................................105
5.1.3 添加類字段 ................................................................................................106
5.1.4 使用構造函數 ............................................................................................107
5.1.5 聲明類方法 ................................................................................................110
5.2 聲明結構體 ......................................................................................... 112
5.3 理解引用和值類型 ............................................................................ 114
5.3.1 引用類型 ....................................................................................................115
5.3.2 值類型 ........................................................................................................116
5.4 植入面向對象的思維 ........................................................................ 118
5.4.1 封裝 ............................................................................................................118
5.4.2 繼承 ............................................................................................................120
5.4.3 組合 ............................................................................................................122
5.4.4 多態 ............................................................................................................123
5.4.5 面向對象編程綜述 ...................................................................................124
5.5 在 Unity中應用面向對象編程 ......................................................... 125
5.5.1 對象是類的行為 ........................................................................................125
5.5.2 訪問組件 ....................................................................................................126
5.6 本章小結 ............................................................................................. 131
5.7 小測驗 —— OOP的相關內容 .......................................................... 132
第6章親手實踐 Unity........................................................................133
6.1 游戲設計入門 .................................................................................... 134
6.1.1 游戲設計文檔 ............................................................................................134
6.1.2 Hero Born游戲單頁文檔 .........................................................................135
6.2 構建關卡 ............................................................................................. 136
6.2.1 創建原始對象 ............................................................................................136
6.2.2 用 3D思維思考 .........................................................................................138
6.2.3 材質 ............................................................................................................140
6.2.4 白盒 ............................................................................................................142
6.3 光照基礎 ............................................................................................. 151
6.3.1 創建光源 ....................................................................................................152
6.3.2 Light組件屬性 ..........................................................................................153
6.4 在 Unity中製作動畫 ......................................................................... 154
6.4.1 創建動畫剪輯 ............................................................................................154
6.4.2 錄制關鍵幀 ................................................................................................157
6.4.3 曲線和切線 ................................................................................................159
6.5 粒子系統 ............................................................................................. 162
6.6 本章小結 ............................................................................................. 164
6.7 小測驗 —— Unity基本功能 ............................................................. 164
第7章角色移動、攝像機以及碰撞 ...................................................165
7.1 角色移動 ............................................................................................. 166
7.1.1 玩家設置 ....................................................................................................167
7.1.2 理解向量 ....................................................................................................168
7.1.3 獲取玩家輸入 ............................................................................................170
7.2 添加攝像機跟隨 ................................................................................ 174
7.3 使用 Unity物理系統 ......................................................................... 177
7.3.1 剛體運動 ....................................................................................................179
7.3.2 碰撞體和碰撞 ............................................................................................183
7.3.3 使用碰撞體觸發器 ...................................................................................187
7.3.4 物理系統綜述 ............................................................................................191
7.4 本章小結 ............................................................................................. 192
7.5 小測驗 ——玩家控制和物理系統 ................................................... 192
第8章游戲機制腳本編寫 ..................................................................193
8.1 添加跳躍 ............................................................................................. 194
8.1.1 介紹枚舉 ....................................................................................................194
8.1.2 使用層遮罩 ................................................................................................198
8.2 發射子彈 ............................................................................................. 203
8.2.1 實例化對象 ................................................................................................203
8.2.2 管理游戲對象的堆積 ...............................................................................208
8.3 創建游戲管理器 ................................................................................ 209
8.3.1 追蹤玩家屬性 ............................................................................................209
8.3.2 get和 set屬性............................................................................................211
8.4 游戲的收尾打磨 ................................................................................ 216
GUI.............................................................................................................216
8.4.1
8.4.2 勝負條件 ....................................................................................................220
8.4.3 使用指令和命名空間 ...............................................................................222
8.5 本章小結 ............................................................................................. 225
8.6 小測驗 ——游戲機制 ....................................................................... 226
第9章 AI基礎與敵人行為 .................................................................227
9.1 Unity導航系統 .................................................................................. 228
9.2 移動敵人代理 .................................................................................... 231
9.3 敵人游戲機制 .................................................................................... 240
9.4 重構並保持“ DRY”........................................................................ 248
9.5 本章小結 ............................................................................................. 250
9.6 小測驗 —— AI和導航...................................................................... 250
第10章 再談類型、方法和類 ............................................................251
10.1 再談訪問修飾符 .............................................................................. 252
10.1.1 常量和只讀屬性 ...................................................................................252
10.1.2 使用 static關鍵字 .................................................................................253
10.2 再談方法........................................................................................... 255
10.2.1 方法重載 ...............................................................................................255
10.2.2 ref參數..................................................................................................257
10.2.3 out參數 .................................................................................................260
10.3 再談面向對象 .................................................................................. 260
10.3.1 接口 .......................................................................................................261
10.3.2 抽象類 ...................................................................................................264
10.3.3 類的擴展 ...............................................................................................266
10.4 再談命名空間 .................................................................................. 269
10.5 本章小結........................................................................................... 270
10.6 小測驗——升級 .............................................................................. 270
第11章棧、隊列和 HashSet ............................................................271
11.1棧 ....................................................................................................... 272
11.1.1 基本語法 ...............................................................................................272
11.1.2 出棧和查看棧頂 ...................................................................................274
11.1.3 常用方法 ...............................................................................................276
11.2隊列 ................................................................................................... 278
11.2.1 基本語法 ...............................................................................................278
11.2.2 添加、刪除和查看 ...............................................................................279
11.2.3 常用方法 ...............................................................................................279
11.3使用 HashSet .................................................................................... 280
11.3.1 基本語法 ...............................................................................................280
11.3.2 執行集合運算 .......................................................................................281
11.4本章小結 ........................................................................................... 283
11.5小測驗 ——中級集合 ...................................................................... 283
第12章探索泛型、委托等 ................................................................284
12.1 泛型................................................................................................... 284
12.1.1 泛型對象 ...............................................................................................285
12.1.2 泛型方法 ...............................................................................................287
12.1.3 約束類型參數 .......................................................................................290
12.2 委托行為........................................................................................... 291
12.2.1 基本語法 ...............................................................................................291
12.2.2 將委托作為參數類型 ...........................................................................294
12.3 觸發事件........................................................................................... 296
12.3.1 基本語法 ...............................................................................................296
12.3.2 處理事件訂閱 .......................................................................................298
12.4 處理異常........................................................................................... 301
12.4.1 拋出異常 ...............................................................................................301
12.4.2 使用 try-catch........................................................................................304
12.5 設計模式入門 .................................................................................. 307
12.6 本章小結........................................................................................... 309
12.7 小測驗——中級 C#......................................................................... 309
第13章旅程繼續 ...............................................................................310
13.1 有待深入的基礎知識 ...................................................................... 310
13.2 牢記面向對象編程 .......................................................................... 311
13.3 瞭解 Unity項目 ............................................................................... 312
13.4 進一步學習 ....................................................................................... 313
13.4.1 C#資源...................................................................................................313
13.4.2 Unity資源.............................................................................................314
13.4.3 Unity認證.............................................................................................314
13.5 本章小結........................................................................................... 315
小測驗答案 ............................................................................................317