Unity和C#游戲編程入門(第7版)

[美] 哈里森·費隆(Harrison Ferrone)著 王冬、殷崇英 譯

  • Unity和C#游戲編程入門(第7版)-preview-1
  • Unity和C#游戲編程入門(第7版)-preview-2
  • Unity和C#游戲編程入門(第7版)-preview-3
Unity和C#游戲編程入門(第7版)-preview-1

商品描述

"主要內容: ● 解構並理解編程的基礎知識 ● 通過代碼示例全面瞭解面向對象編程以及它是如何在C#中應用的跟隨簡單的步驟和示例在Unity中創建和實現C#腳本 ● 使用接口、抽象類和類擴展將代碼分割成可以靈活復用的構建塊 ● 掌握游戲設計文檔的基礎知識,進行關卡搭建、添加光照和簡單的對象動畫 ● 使用C#創建簡單的游戲機制,例如實現玩家控制器和射擊機制 ● 熟悉堆棧、隊列、異常處理、錯誤處理等其他C#核心概念 ● 處理文本、XML以及JSON數據以保存和加載游戲數據 "

目錄大綱

目錄

 

 

第1章  瞭解開發環境 1

1.1  技術要求 1

1.2  Unity 2022入門 2

1.2.1  使用macOS 7

1.2.2  創建新項目 7

1.2.3  編輯器界面導航 9

1.3  在Unity中使用C# 11

1.3.1  使用C#腳本 11

1.3.2  介紹Visual Studio編輯器 12

1.3.3  同步C#文件 14

1.4  瀏覽技術文檔 15

1.4.1  訪問Unity的技術文檔 15

1.4.2  查找C#資源 18

1.5  本章小結 19

1.6  小測驗 —— 關於腳本 20

第2章  編程的基本構建塊 21

2.1  定義變量 21

2.1.1  名字很重要 22

2.1.2  變量充當占位符 23

2.2  瞭解方法 26

2.2.1  方法驅使行為 26

2.2.2  方法也是占位符 27

2.3  類 29

2.3.1  一個常見的Unity類 30

2.3.2 類就像藍圖 30

2.3.3  類之間的通信 31

2.4  使用註釋 32

2.4.1  單行註釋 32

2.4.2  多行註釋 32

2.4.3  添加註釋 33

2.5  整合基本構建塊 33

2.5.1  將腳本變成組件 34

2.5.2  來自MonoBehaviour的助力 36

2.6  本章小結 37

2.7  小測驗——C#的基本構建塊 37

第3章  深入瞭解變量、類型和方法 39

3.1  編寫符合規範的C#代碼 40

3.2  調試代碼 41

3.3  深入瞭解變量 42

3.3.1  聲明變量 42

3.3.2  使用訪問修飾符 44

3.3.3  瞭解數據類型 46

3.3.4  命名變量 51

3.3.5  瞭解變量的作用域 52

3.4  運算符 53

3.5  定義方法 55

3.5.1  聲明方法 56

3.5.2 命名約定 58

3.5.3 方法是邏輯上的繞行道 58

3.5.4  指定參數 59

3.5.5  指定返回值 60

3.5.6  使用返回值 61

3.6  本章小結 64

3.7  小測驗——變量和方法 65

第4章  控制流和集合類型 67

4.1  選擇語句 67

4.1.1  if-else 語句 68

4.1.2  switch語句 77

4.1.3  小測驗1——if語句與邏輯運算符 82

4.2  初識集合 82

4.2.1  數組 82

4.2.2  列表 86

4.2.3  字典 89

4.2.4  小測驗2—— 關於集合的一切 92

4.3  迭代語句 92

4.3.1  for循環 92

4.3.2  foreach循環 96

4.3.3  while 循環 98

4.3.4  超越無限 100

4.4  本章小結 101

第5章  使用類、結構體以及面向對象編程 103

5.1  什麽是面向對象編程 104

5.2  定義類 104

5.2.1  實例化類對象 105

5.2.2  添加類字段 106

5.2.3  使用構造方法 107

5.2.4  聲明類方法 110

5.3  聲明結構體 111

5.4  瞭解引用類型和值類型 114

5.4.1  引用類型 114

5.4.2  值類型 115

5.5  植入面向對象的思維 116

5.5.1  封裝 117

5.5.2  繼承 118

5.5.3  組合 120

5.5.4  多態 121

5.6  在Unity中應用面向對象編程 122

5.6.1  對象是類的行動 123

5.6.2  訪問組件 124

5.7  本章小結 128

5.8  小測驗——面向對象編程的那些事 128

第6章  親手實踐Unity 129

6.1  游戲設計入門 129

6.1.1  游戲設計文檔 130

6.1.2  Hero Born游戲單頁文檔 131

6.2  構建關卡 131

6.2.1  創建原始對象 132

6.2.2  用3D思維思考 134

6.2.3  材質 135

6.2.4  白盒 138

6.3  光照基礎 147

6.3.1  創建光源 147

6.3.2  Light組件屬性 148

6.4  在Unity中製作動畫 149

6.4.1  使用代碼創建動畫 150

6.4.2  在Unity中使用Animation窗口創建動畫 151

6.4.3  錄制關鍵幀 154

6.4.4  曲線和切線 156

6.5  本章小結 158

6.6  小測驗—— Unity的基本功能 159

第7章  角色移動、攝像機以及碰撞 161

7.1  管理玩家移動 161

7.2  使用Transform組件移動玩家 162

7.2.1  理解向量 164

7.2.2  獲取玩家輸入 166

7.2.3  角色移動 167

7.3  編寫攝像機行為腳本 170

7.4  使用Unity物理系統 172

7.4.1  剛體運動 174

7.4.2  碰撞體和碰撞 178

7.4.3  使用碰撞觸發器 181

7.4.4  物理系統綜述 185

7.5  本章小結 186

7.6  小測驗 —— 玩家控制和物理系統 186

第8章  游戲機制腳本編寫 187

8.1  添加跳躍 187

8.1.1  枚舉介紹 188

8.1.2  使用層遮罩 191

8.2  發射子彈 196

8.2.1  實例化對象 196

8.2.2  添加射擊機制 198

8.2.3  管理對象堆積 201

8.3  創建游戲管理器 202

8.3.1  追蹤玩家屬性 202

8.3.2  get和set屬性 204

8.3.3  更新道具收集 206

8.4  創建GUI 208

8.4.1  顯示玩家數據 208

8.4.2  勝負條件 216

8.4.3  使用指令和命名空間暫停和重啟游戲 221

8.5  本章小結 225

8.6  小測驗——游戲機制 225

第9章  AI基礎與敵人行為 227

9.1  在Unity中導航3D空間 227

9.1.1  導航組件 228

9.1.2  設置敵人代理 230

9.2  移動敵人代理 231

9.2.1  面向過程編程 231

9.2.2  引用巡邏點 232

9.2.3  移動敵人 234

9.3  敵人游戲機制 238

9.3.1  尋找和銷毀:改變代理的目標 238

9.3.2  減少玩家生命值 240

9.3.3  檢測子彈碰撞 241

9.3.4  更新游戲管理器 244

9.4  重構並保持“DRY” 246

9.5  本章小結 248

9.6  小測驗——AI和導航 248

第10章  重睹類型、方法和類 249

10.1  再談訪問修飾符 249

10.1.1  常量和只讀屬性 250

10.1.2  使用static關鍵字 250

10.2  重睹方法 252

10.2.1  重載方法 252

10.2.2  ref參數 254

10.2.3  out參數 256

10.3  中級的面向對象編程 257

10.3.1  接口 257

10.3.2  抽象類 261

10.3.3  類的擴展 263

10.4  命名空間沖突和類型別名 266

10.5  本章小結 267

10.6  小測驗——升級 268

第11章  特殊集合類型和LINQ 269

11.1  棧 269

11.1.1  出棧(Pop)和查看棧頂(Peek) 273

11.1.2  常用方法 274

11.2  隊列 275

11.3  哈希集 277

11.4  關於中級集合的小結 279

11.5  用LINQ查詢數據 280

11.5.1  LINQ基礎 280

11.5.2  lambda表達式 283

11.5.3  鏈式查詢 284

11.5.4  將數據轉換為新類型 285

11.5.5  用可選語法化簡 286

11.6  本章小結 288

11.7  小測驗——中級的集合 288

第12章  保存、加載與數據序列化 289

12.1  數據格式 289

12.1.1 解構XML 290

12.1.2  解構JSON 291

12.2  瞭解文件系統 293

12.2.1  使用資產路徑 295

12.2.2  創建或刪除目錄 297

12.2.3  創建、更新、刪除文件 299

12.3  使用數據流 305

12.3.1  管理數據流資源 306

12.3.2  使用StreamWriter與StreamReader 306

12.3.3  創建一個XMLWriter 310

12.3.4  自動關閉數據流 313

12.4  數據序列化 314

12.4.1  序列化和反序列化XML 315

12.4.2  序列化和反序列化JSON 319

12.5  數據匯總 325

12.6  本章小結 326

12.7  小測驗——數據管理 326

第13章  探索泛型、委托以及更多 327

13.1  泛型 327

13.1.1  泛型類 328

13.1.2  泛型方法 330

13.1.3  約束類型參數 333

13.1.4  向Unity對象添加泛型 336

13.2  委托行動 337

13.2.1  創建調試委托 337

13.2.2  將委托作為參數類型 339

13.3  觸發事件 340

13.3.1 創建並調用事件 341

13.3.2  處理事件訂閱 342

13.3.3  清理事件訂閱 344

13.4  處理異常 345

13.4.1  拋出異常 345

13.4.2  使用try-catch語句 347

13.5  本章小結 350

13.6  小測驗——中級 C# 350

第14章  旅程繼續 351

14.1  有待更深入的知識 351

14.2  牢記面向對象編程 352

14.3  設計模式入門 353

14.4  走進Unity項目 353

14.5  本書未提及的Unity特性 354

14.6  下一步的學習 354

14.6.1  C#資源 354

14.6.2  Unity資源 355

14.6.3  Unity認證 355

14.7  英雄的試煉 —— 向全世界展示 356

14.8  本章小結 357

小測驗答案 359