Unity游戲開發入門經典(第4版) Unity Game Development in 24 Hours, Sams Teach Yourself 4/e

[美]邁克·吉格(Mike Geig)

  • Unity游戲開發入門經典(第4版)-preview-1
  • Unity游戲開發入門經典(第4版)-preview-2
Unity游戲開發入門經典(第4版)-preview-1

買這商品的人也買了...

商品描述

Unity 游戲引擎是由 Unity Technologies 公司開發的一個讓玩家能夠輕松創建諸如三維視頻游戲、建築可視化、實時三維動畫等內容的跨平臺綜合游戲開發工具。很多熱門游戲都是應用該引擎開發的,例如《深海迷航》《坎巴拉太空計劃》等。

 

本書以直截了當、循序漸進的方式講解Unity 游戲開發從基礎到高級的所有內容,包括游戲物理引擎、動畫和移動設備部署技術。本書分為24 章,內容包括 Unity 游戲引擎和編輯器的介紹,游戲對象、模型、材質、紋理、地形、環境、燈光和攝像機的介紹及應用,任務腳本的編寫,真實的物理效果和碰撞的應用,預製件、2D 游戲工具、瓦片地圖、用戶界面、粒子系統、動畫、動畫器、時間軸、復雜音頻的集成、移動設備加速計和多點觸摸屏幕的使用,以及4 個游戲案例。

 

本書附贈源代碼,適合對使用Unity 進行游戲開發感興趣的零基礎讀者學習。有過其他游戲平臺開發經驗,打算向Unity 平臺拓展的讀者也可以通過本書快速上手。

作者簡介

【作者】迈克·吉格(Mike Geig)在Unity Technologies 的制作团队就职,他通过制作并传播具有强大影响力的学习资源,使得游戏开发技术更加普及。同时,迈克也是一位经验丰富的独立游戏开发者,一位大学老师,一位作家。作为一位资深游戏人,他对该领域的热爱使他致力于将这项互动艺术的开发过程变得更加有趣,让各行各业的人都能加入进来。

 

【译者】唐誉玲,毕业于英国爱丁堡大学的艺术学院,是一位交互媒体艺术从业者,具有丰富的游戏引擎使用经验,擅长建立人与机器、人与虚拟空间的交流,并乐于探索游戏化思维及虚拟空间的多场景应用。

目錄大綱

第 1章 Unity簡介 1

1.1 安裝Unity 1

1.1.1 下載並安裝Unity Hub 2

1.1.2 安裝Unity編輯器 2

1.2 熟悉Unity編輯器 4

1.2.1 項目部分 4

1.2.2 Unity界面 5

1.2.3 項目視圖 6

1.2.4 層級視圖 9

1.2.5 檢查器視圖 9

1.2.6 場景視圖 11

1.2.7 游戲視圖 12

1.2.8 值得一提:工具欄 13

1.3 在場景視圖中移動 13

1.3.1 手形工具 14

1.3.2 飛越模式 14

1.4 總結 16

1.5 問答 16

1.6 測試 16

1.6.1 試題 16

1.6.2 答案 16

1.7 練習 16

 

第 2章 游戲對象 18

2.1 維度和坐標系統 18

2.1.1 走進3D 18

2.1.2 使用坐標系統 19

2.1.3 世界坐標和局部坐標 20

2.2 游戲對象 21

2.3 變換 22

2.3.1 移動 23

2.3.2 旋轉 24

2.3.3 縮放 24

2.3.4 變換的風險 25

2.3.5 工具句柄位置 26

2.3.6 變換或嵌套對象 27

2.4 總結 27

2.5 問答 27

2.6 測試 28

2.6.1 試題  28

2.6.2 答案 28

2.7 練習 28

 

第3章 模型、材質和紋理 29

3.1 模型的基礎知識 29

3.1.1 內置的3D對象 30

3.1.2 導入模型 30

3.1.3 模型和資源商店 32

3.2 紋理、著色器和材質 33

3.2.1 紋理 34

3.2.2 著色器 35

3.2.3 材質 35

3.2.4 再論著色器 35

3.3 總結 38

3.4 問答 38

3.5 測試 38

3.5.1 試題 38

3.5.2 答案 38

3.6 練習 38

 

第4章 地形和環境 40

4.1 地形生成 40

4.1.1 為項目添加地形 40

4.1.2 高度圖的繪制 42

4.1.3 Unity繪制地形工具 44

4.2 地形紋理 46

4.2.1 導入地形資源 46

4.2.2 紋理化地形 47

4.3 生成樹和草 49

4.3.1 繪制樹 49

4.3.2 繪制草 50

4.3.3 地形設置 51

4.4 角色控制器 53

4.5 總結 54

4.6 問答 54

4.7 測試 55

4.7.1 試題  55

4.7.2 答案 55

4.8 練習 55

 

第5章 燈光和攝像機 56

5.1 燈光 56

5.1.1 烘焙與實時 56

5.1.2 點光源 57

5.1.3 聚光燈 58

5.1.4 定向光 59

5.1.5 利用對象創建燈光 60

5.1.6 光暈 60

5.1.7 剪影 61

5.2 攝像機 62

5.2.1 剖析攝像機 63

5.2.2 多個攝像機 64

5.2.3 拆分屏幕和畫中畫 64

5.3 圖層 66

5.3.1 處理圖層 66

5.3.2 使用圖層 67

5.4 總結 69

5.5 問答 69

5.6 測試 69

5.6.1 試題  69

5.6.2 答案 70

5.7 練習 70

 

第6章 游戲案例1:Amazing Racer 71

6.1 設計 71

6.1.1 概念 71

6.1.2 規則 71

6.1.3 需求 72

6.2 創建游戲世界 73

6.2.1 繪制游戲世界 73

6.2.2 添加環境 74

6.2.3 霧 74

6.2.4 天空盒 75

6.2.5 角色控制器 76

6.3 游戲化 76

6.3.1 添加游戲控制器對象 77

6.3.2 添加腳本 79

6.3.3 連接腳本 80

6.4 游戲測試 81

6.5 總結 82

6.6 問答 82

6.7 測試 82

6.7.1 試題  82

6.7.2 答案 82

6.8 練習 83

 

第7章 腳本(第 一部分) 84

7.1 腳本 84

7.1.1 創建腳本 85

7.1.2 附加腳本 87

7.1.3 一個基本腳本的詳細分析 88

7.1.4 using部分 88

7.1.5 類聲明部分 89

7.1.6 類的內容 89

7.2 變量 90

7.2.1 創建變量 90

7.2.2 變量可用域 91

7.2.3 公有和私有 91

7.3 運算符 92

7.3.1 算術運算符 92

7.3.2 賦值運算符 93

7.3.3 等式運算符 93

7.3.4 邏輯運算符 94

7.4 條件語句 95

7.4.1 if語句 95

7.4.2 if/else語句 96

7.4.3 if/else if語句 96

7.5 循環語句 97

7.5.1 while循環語句 98

7.5.2 for循環語句 98

7.6 總結 99

7.7 問答 99

7.8 測試 99

7.8.1 試題  99

7.8.2 答案 100

7.9 練習 100

 

第8章 腳本(第二部分) 101

8.1 方法 101

8.1.1 方法的具體分析 102

8.1.2 編寫方法 104

8.1.3 使用方法 105

8.2 輸入 106

8.2.1 輸入的基礎知識 106

8.2.2 編寫輸入腳本 107

8.2.3 特定的鍵輸入 108

8.2.4 鼠標輸入 109

8.3 訪問局部組件 110

8.3.1 使用GetComponent 111

8.3.2 獲取變換 111

8.4 訪問其他對象 112

8.4.1 查找其他對象 112

8.4.2 修改對象組件 114

8.5 總結 115

8.6 問答 115

8.7 測試 115

8.7.1 試題  116

8.7.2 答案 116

8.8 練習 116

 

第9章 碰撞 117

9.1 剛體 117

9.2 碰撞器和物理材質 118

9.2.1 碰撞器 118

9.2.2 物理材質 120

9.3 觸發器 121

9.4 光線投射 123

9.5 總結 124

9.6 問答 124

9.7 測試 125

9.7.1 試題  125

9.7.2 答案 125

9.8 練習 125

 

第 10章 游戲案例2:Chaos Ball 126

10.1 設計 126

10.1.1 概念 126

10.1.2 規則 126

10.1.3 需求 127

10.2 舞臺 127

10.2.1 創建舞臺 127

10.2.2 紋理化 128

10.2.3 創建超級彈性材質 129

10.2.4 完成舞臺 129

10.3 游戲實體 130

10.3.1 游戲角色 130

10.3.2 混沌球 130

10.3.3 彩色球 132

10.4 控制對象 132

10.4.1 球門 133

10.4.2 游戲控制器 134

10.5 優化游戲 135

10.6 總結 136

10.7 問答 136

10.8 測試 136

10.8.1 試題  136

10.8.2 答案 136

10.9 練習 137

 

第 11章 預製件 138

11.1 預製件的基礎知識 138

11.1.1 預製件的術語 138

11.1.2 預製件結構 139

11.2 使用預製件 140

11.2.1 新建預製件 140

11.2.2 向場景中添加一個預製件實例 142

11.2.3 修改已有預製件 143

11.2.4 使用代碼實例化預製件 145

11.3 總結 145

11.4 問答 145

11.5 測試 146

11.5.1 試題  146

11.5.2 答案 146

11.6 練習 146

 

第 12章 2D游戲工具 148

12.1 2D游戲的基礎知識 148

12.2 正交攝像機 150

12.3 添加精靈 151

12.3.1 導入精靈 151

12.3.2 Sprite模式 152

12.3.3 導入精靈大小 153

12.4 繪制順序 154

12.4.1 排序圖層 154

12.4.2 圖層順序 155

12.5 2D物理 156

12.5.1 2D剛體 156

12.5.2 2D碰撞器 156

12.6 總結 158

12.7 問答 158

12.8 測試 158

12.8.1 試題  158

12.8.2 答案 158

12.9 練習 158

 

第 13章 2D瓦片地圖 160

13.1 瓦片地圖的基礎知識 160

13.1.1 創建一個瓦片地圖 160

13.1.2 網格 162

13.2 調色板 162

13.3 瓦片的相關操作 164

13.3.1 配置精靈 165

13.3.2 創建瓦片 165

13.3.3 繪制瓦片 166

13.3.4 自定義調色板 169

13.4 瓦片地圖和物理屬性 169

13.4.1 瓦片地圖碰撞器 169

13.4.2 使用Composite Collider 2D組件 171

13.5 總結 172

13.6 問答 172

13.7 測試 172

13.7.1 試題  172

13.7.2 答案 172

13.8 練習 172

 

第 14章 用戶界面 174

14.1 UI的基本原則 174

14.2 畫布 174

14.2.1 矩形變換 175

14.2.2 錨點 176

14.2.3 其他Canvas組件 178

14.3 UI元素 179

14.3.1 圖像 179

14.3.2 文本 181

14.3.3 按鈕 181

14.4 畫布渲染模式 184

14.4.1 屏幕空間-覆蓋 184

14.4.2 屏幕空間-攝像機 185

14.4.3 世界空間 185

14.5 總結 186

14.6 問答 186

14.7 測試 186

14.7.1 試題 186

14.7.2 答案 187

14.8 練習 187

 

第 15章 游戲案例3:Captain Blaster 189

15.1 設計 189

15.1.1 概念 189

15.1.2 規則 189

15.1.3 需求 190

15.2 畫布 190

15.2.1 攝像機 190

15.2.2 背景 190

15.2.3 游戲實體 191

15.2.4 游戲角色 192

15.2.5 流星 193

15.2.6 子彈 194

15.2.7 觸發器 195

15.2.8 用戶界面 195

15.3 控制 196

15.3.1 游戲控制器 196

15.3.2 流星的腳本 198

15.3.3 流星生成器 198

15.3.4 DestroyOnTrigger腳本 199

15.3.5 ShipControl腳本 200

15.3.6 Bullet腳本 201

15.4 優化 203

15.5 總結 203

15.6 問答 203

15.7 測試 203

15.7.1 試題  204

15.7.2 答案 204

15.8 練習 204

 

第 16章 粒子系統 205

16.1 粒子系統的基礎知識 205

16.1.1 粒子 205

16.1.2 Unity粒子系統 205

16.1.3 粒子系統的控制 206

16.2 粒子系統模塊 207

16.2.1 默認模塊 208

16.2.2 發射模塊 209

16.2.3 形狀模塊 209

16.2.4 生命周期內速度模塊 210

16.2.5 生命周期內速度限制模塊 210

16.2.6 繼承速度模塊 210

16.2.7 基於發射器速度的生命周期模塊 210

16.2.8 生命周期內受力模塊 211

16.2.9 生命周期內顏色模塊 211

16.2.10 速度顏色模塊 212

16.2.11 生命周期內大小模塊 212

16.2.12 速度決定大小模塊 212

16.2.13 生命周期內旋轉模塊 212

16.2.14 按速度旋轉模塊 212

16.2.15 外力模塊 212

16.2.16 噪音模塊 212

16.2.17 碰撞模塊 213

16.2.18 觸發器模塊 215

16.2.19 子發射器模塊 215

16.2.20 紋理表格動畫模塊 215

16.2.21 光線模塊 216

16.2.22 拖尾模塊 216

16.2.23 自定義數據模塊 216

16.2.24 渲染器模塊 216

16.3 曲線編輯器 217

16.4 總結 218

16.5 問答 218

16.6 測試 219

16.6.1 試題  219

16.6.2 答案 219

16.7 練習 219

 

第 17章 動畫 220

17.1 動畫的基礎知識 220

17.1.1 綁定 220

17.1.2 動畫 221

17.2 2D動畫與創建動畫 221

17.2.1 2D動畫 221

17.2.2 創建動畫 222

17.3 動畫工具 223

17.3.1 動畫視圖 224

17.3.2 創建一個新的動畫 225

17.3.3 記錄模式 227

17.3.4 曲線編輯器 228

17.4 總結 229

17.5 問答 230

17.6 測試 230

17.6.1 試題  230

17.6.2 答案 230

17.7 練習 230

 

第 18章 動畫器 231

18.1 動畫器的基礎知識 231

18.1.1 綁定 232

18.1.2 導入模型 233

18.2 配置你的資源 233

18.2.1 綁定的準備工作 234

18.2.2 動畫的準備工作 235

18.3 創建動畫器 239

18.3.1 動畫器視圖 240

18.3.2 Idle動畫 241

18.3.3 參數 242

18.3.4 狀態和混合樹 243

18.3.5 過渡 244

18.4 腳本控制動畫器 245

18.5 總結 246

18.6 問答 246

18.7 測試 247

18.7.1 試題  247

18.7.2 答案 247

18.8 練習 247

 

第 19章 時間軸 248

19.1 時間軸的基礎知識 248

19.1.1 解析時間軸視圖 248

19.1.2 創建一個時間軸 249

19.2 使用時間軸 250

19.2.1 時間軸視圖 251

19.2.2 時間軸軌道 251

19.2.3 時間軸片段 253

19.3 不只是簡單的控制 254

19.3.1 在軌道上混合片段 255

19.3.2 時間軸的腳本 256

19.4 總結 258

19.5 問答 258

19.6 測試 258

19.6.1 試題  258

19.6.2 答案 258

19.7 練習 258

 

第 20章 游戲案例4:Gauntlet Runner 259

20.1 設計 259

20.1.1 概念 259

20.1.2 規則 259

20.1.3 需求 260

20.2 游戲世界 260

20.2.1 場景 260

20.2.2 賽道 261

20.2.3 讓地面滾動起來 262

20.3 實體 263

20.3.1 充電裝置 263

20.3.2 障礙物 264

20.3.3 觸發區 264

20.3.4 游戲角色 265

20.4 控制 266

20.4.1 TriggerZone腳本 266

20.4.2 GameManager腳本 267

20.4.3 Player腳本 269

20.4.4 Collidable腳本 270

20.4.5 Spawner腳本 271

20.4.6 把游戲的各個部分結合起來 272

20.5 優化 273

20.6 總結 273

20.7 問答 273

20.8 測試 274

20.8.1 試題  274

20.8.2 答案 274

20.9 練習 274

 

第 21章 音頻 275

21.1 音頻的基礎知識 275

21.1.1 音頻的組成部分 275

21.1.2 2D和3D音頻 276

21.2 音頻源 276

21.2.1 導入音頻片段 277

21.2.2 在場景視圖中測試音頻 278

21.2.3 3D音頻 279

21.2.4 2D音頻 280

21.3 編寫音頻的腳本 280

21.3.1 啟動和停止音頻 280

21.3.2 更換音頻片段 282

21.4 音頻混合器 282

21.4.1 創建音頻混合器 283

21.4.2 將音頻發送給混合器 283

21.5 總結 284

21.6 問答 284

21.7 測試 284

21.7.1 試題  284

21.7.2 答案 285

21.8 練習 285

 

第 22章 移動開發 287

22.1 移動開發的準備 287

22.1.1 設置環境 288

22.1.2 Unity Remote 289

22.2 加速計 290

22.2.1 為加速計設計游戲 291

22.2.2 使用加速計 291

22.2.3 多點觸摸輸入 292

22.3 總結 294

22.4 問答 295

22.5 測試 295

22.5.1 試題  295

22.5.2 答案 295

22.6 練習 295

 

第 23章 潤色和部署 297

23.1 管理場景 297

23.1.1 建立場景順序 298

23.1.2 切換場景 299

23.2 保存數據和對象 299

23.2.1 保存對象 299

23.2.2 保存數據 301

23.3 Unity玩家設置 303

23.3.1 跨平臺的設置 303

23.3.2 每個平臺的設置 304

23.4 生成游戲 305

23.5 總結 306

23.6 問答 306

23.7 測試 306

23.7.1 試題  306

23.7.2 答案 306

23.8 練習 307

 

第 24章 結束語 308

24.1 成功 308

24.1.1 23章的學習 308

24.1.2 4個完整的游戲 309

24.1.3 超過50個場景 310

24.2 之後的方向 310

24.2.1 製作游戲 310

24.2.2 與人打交道 310

24.2.3 記錄 310

24.3 可供使用的資源 311

24.4 總結 311

24.5 問答 311

24.6 測試 311

24.6.1 試題  311

24.6.2 答案 312

24.7 練習 312