游戲開發基礎 — 基於 Unity 游戲引擎

張帆

  • 出版商: 電子工業
  • 出版日期: 2024-08-01
  • 定價: $419
  • 售價: 8.5$356
  • 語言: 簡體中文
  • 頁數: 340
  • ISBN: 7121477343
  • ISBN-13: 9787121477348
  • 相關分類: 遊戲引擎 Game-engine
  • 下單後立即進貨 (約4週~6週)

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

商品描述

本書是國家級一流本科專業(數字媒體技術)課程“游戲開發基礎”的指定教材,同時被列為浙江省普通本科高校“十四五”重點立項建設教材。本書以Unity游戲引擎為平臺,詳細闡述了12款經典游戲的實現方法,這些游戲包括《打地鼠》、《記憶翻牌》、《拼圖》、《推箱子》、《俄羅斯方塊》、《華容道》、《連連看》、《三消》、《掃雷》、《貪吃蛇》、《五子棋》和《跳棋》。通過本書的學習和實踐,讀者能夠全面理解和掌握游戲開發的核心算法,同時深刻領悟數據結構等基礎知識在游戲開發中的實際應用,培養全面的工程思維。通過學習本書內容,讀者不僅能夠熟練掌握游戲引擎的運用,更能夠靈活運用數據結構、數學思路等理論知識進行游戲創作。本書既適合作為各院校相關專業的教材,又適合作為對游戲開發感興趣的讀者的參考書。

目錄大綱

第1章 游戲引擎介紹 1
1.1 多平臺發布的Unity 1
1.2 Unity的下載和安裝 1
1.2.1 下載Unity 2
1.2.2 安裝Unity 2
1.2.3 註冊Unity 4
1.2.4 啟動Unity 4
1.3 Unity編輯器的佈局 5
1.3.1 標題欄 5
1.3.2 主菜單欄 6
1.3.3 Project(項目資源)窗口 13
1.3.4 Hierarchy(層級)窗口 19
1.3.5 Scene(場景)窗口 21
1.3.6 Inspector(組件)窗口 30
1.3.7 Game(游戲預覽)窗口 35
1.3.8 Console(控制台)窗口 36
1.4 自定義窗口佈局 37
1.4.1 使用Unity內置的窗口
佈局功能 37
1.4.2 自由設定窗口佈局 39
1.5 本章小結 40
1.6 練習題 40
第2章 打地鼠 41
2.1 游戲簡介 41
2.2 游戲規則 41
2.3 游戲開發核心思路 41
2.3.1 洞口位置的存儲結構和計算 41
2.3.2 地鼠出現頻率的控制 42
2.3.3 地鼠的隨機生成和銷毀 42
2.3.4 游戲時長和分數 42
2.3.5 游戲流程圖 43
2.4 游戲實現 43
2.4.1 資源的導入與Sorting Layer 43
2.4.2 生成洞口 45
2.4.3 地鼠的生成 46
2.4.4 打擊地鼠 49
2.4.5 計時功能 50
2.4.6 計分功能 52
2.4.7 游戲結束 53
2.4.8 修改地鼠出現頻率 53
2.4.9 修改圖標 54
2.4.10 添加音效 55
2.4.11 重新開始游戲 56
2.4.12 導出游戲 56
2.5 本章小結 57
2.6 練習題 57
第3章 記憶翻牌 58
3.1 游戲簡介 58
3.2 游戲規則 58
3.3 游戲開發核心思路 58
3.3.1 生成卡牌池 58
3.3.2 洗牌 59
3.3.3 卡牌狀態 60
3.3.4 游戲計分 60
3.3.5 游戲流程圖 61
3.4 游戲實現 61
3.4.1 游戲資源的導入與場景搭建 61
3.4.2 卡牌的位置排列 62
3.4.3 洗牌功能的實現 63
3.4.4 顯示卡牌的背面與
卡牌的圖案 64
3.4.5 設置卡牌狀態 66
3.4.6 卡牌圖案的配對 67
3.4.7 計算分數與步數 69
3.5 本章小結 72
3.6 練習題 72
第4章 拼圖 73
4.1 游戲簡介 73
4.2 游戲規則 73
4.3 游戲開發核心思路 73
4.3.1 碎片對象的生成與位置初始化 73
4.3.2 原圖與碎片位置的對應關系 73
4.3.3 拖動碎片 74
4.3.4 碎片放置位置正確性的判斷 75
4.3.5 游戲流程圖 76
4.4 游戲實現 76
4.4.1 新建工程與導入資源 76
4.4.2 批量讀取碎片 78
4.4.3 生成碎片對象 79
4.4.4 初始化碎片位置 79
4.4.5 計算每個碎片的目標位置 80
4.4.6 拖動鼠標 81
4.4.7 判斷游戲是否勝利 86
4.5 本章小結 87
4.6 練習題 87
第5章 推箱子 88
5.1 游戲簡介 88
5.2 游戲規則 88
5.3 游戲開發核心思路 89
5.3.1 地圖的生成 89
5.3.2 角色位置及移動方向與數組的對應關系 89
5.3.3 分析角色可移動和不可移動情況 90
5.3.4 角色移動的代碼邏輯 90
5.3.5 游戲勝利的判定 92
5.3.6 游戲流程圖 92
5.4 游戲實現 92
5.4.1 資源的導入與切割 92
5.4.2 角色動畫的製作 94
5.4.3 地圖生成的程序實現與代碼重構 95
5.4.4 角色移動方向位置上的Tile類型檢測與實現 97
5.4.5 角色可移動情況的代碼框架實現 99
5.4.6 角色在場景中的移動功能 101
5.4.7 打印地圖快照信息 102
5.4.8 角色移動與地圖快照信息的實時更新 104
5.4.9 推動箱子的功能實現 104
5.4.10 移動代碼的重構優化 109
5.4.11 游戲勝利條件判斷 112
5.5 本章小結 114
5.6 練習題 114
第6章 俄羅斯方塊 115
6.1 游戲簡介 115
6.2 游戲規則 115
6.3 游戲開發核心思路 116
6.3.1 初始化地圖 116
6.3.2 方塊類(Block)的編寫 117
6.3.3 初始化方塊——方塊在地圖中的隨機生成 117
6.3.4 移動和旋轉方塊——修改位置坐標 117
6.3.5 移動和旋轉方塊——邊界判斷 117
6.3.6 移動方塊——向下移動 118
6.3.7 消除滿行方塊 118
6.3.8 游戲結束判斷 118
6.3.9 附加功能——提示下一個方塊 118
6.3.10 游戲流程圖 118
6.4 游戲實現 119
6.4.1 資源的導入 119
6.4.2 地圖的初始化與顯示 121
6.4.3 地圖快照信息的顯示 122
6.4.4 方塊的初始化 124
6.4.5 方塊的隨機生成 128
6.4.6 方塊的移動和旋轉 130
6.4.7 方塊的移動、旋轉與地圖的刷新 134
6.4.8 邊界的判斷 138
6.4.9 滿行的消除 141
6.4.10 游戲結束的判斷 142
6.4.11 附加功能——控制方塊 自動下落的速度 144
6.4.12 附加功能——顯示下 一個方塊的類型 145
6.4.13 附加功能——優化重復 代碼 147
6.5 本章小結 149
6.6 練習題 149
第7章 華容道 150
7.1 游戲簡介 150
7.2 游戲規則 150
7.3 游戲開發核心思路 151
7.3.1 棋子類(Chess)的編寫 151
7.3.2 棋盤盤面佈局的生成 151
7.3.3 移動棋子的實現 151
7.3.4 游戲勝利的判斷 156
7.3.5 游戲流程圖 156
7.4 游戲實現 157
7.4.1 資源的導入 157
7.4.2 棋子類的編寫 158
7.4.3 棋盤佈局的生成 159
7.4.4 移動棋子——選擇棋子 163
7.4.5 移動棋子——移動1×1棋子 169
7.4.6 移動棋子——移動1×2棋子 173
7.4.7 移動棋子——移動2×1棋子 177
7.4.8 移動棋子——移動2×2棋子 181
7.4.9 游戲勝利的判斷 184
7.5 本章小結 188
7.6 練習題 188
第8章 連連看 189
8.1 游戲簡介 189
8.2 游戲規則 189
8.3 游戲開發核心思路 190
8.3.1 編寫Tile類 190
8.3.2 初始化地圖 190
8.3.3 消除操作 191
8.3.4 繪制連接線 193
8.4 游戲實現 194
8.4.1 導入資源 194
8.4.2 編寫Tile類 196
8.4.3 初始化地圖 197
8.4.4 選擇Tile對象 202
8.4.5 連接判斷——直連、二連、三連 205
8.4.6 連接線的繪制 209
8.5 本章小結 214
8.6 練習題 214
第9章 三消 215
9.1 游戲簡介 215
9.2 游戲規則 215
9.3 游戲開發核心思路 216
9.3.1 編寫Gemstone類 216
9.3.2 初始化游戲場景和地圖 216
9.3.3 消除檢測 217
9.3.4 消除寶石 218
9.3.5 重新洗牌 219
9.3.6 游戲流程圖 219
9.4 游戲實現 220
9.4.1 導入資源與設置場景 220
9.4.2 編寫Gemstone類 221
9.4.3 初始化地圖數據結構和場景 223
9.4.4 選擇寶石 225
9.4.5 消除寶石 228
9.4.6 重新洗牌操作 233
9.5 本章小結 235
9.6 練習題 235
第10章 掃雷 236
10.1 游戲簡介 236
10.2 游戲規則 236
10.2.1 《掃雷》游戲的佈局 236
10.2.2 《掃雷》游戲的基本 操作 237
10.3 游戲開發核心思路 237
10.3.1 初始化游戲地圖 237
10.3.2 編寫Tile類 237
10.3.3 隨機生成地雷 238
10.3.4 編寫輔助函數,顯示 地圖信息 238
10.3.5 Tile的交互 238
10.3.6 方格的單擊(左鍵、 遍歷翻開、右鍵) 239
10.3.7 游戲結束判斷 239
10.3.8 UI控制 239
10.3.9 游戲流程圖 240
10.4 游戲實現 240
10.4.1 資源導入與場景設置 240
10.4.2 初始化場景 241
10.4.3 左、右鍵操作 248
10.4.4 游戲結束判斷 252
10.4.5 UI控制 256
10.4.6 重新開始一局游戲 269
10.5 本章小結 270
10.6 練習題 270
第11章 貪吃蛇 271
11.1 游戲簡介 271
11.2 游戲規則 271
11.3 游戲開發核心思路 271
11.3.1 地圖的生成 271
11.3.2 食物的出現 272
11.3.3 蛇的數據結構 272
11.3.4 貪吃蛇的移動算法 272
11.3.5 判斷蛇頭是否撞到了 自身 272
11.3.6 邊界的判斷 273
11.3.7 游戲流程圖 273
11.4 游戲實現 273
11.4.1 資源導入和場景設置 273
11.4.2 編寫Node類 275
11.4.3 初始化場景 276
11.4.4 貪吃蛇的移動 280
11.4.5 結束判定 285
11.5 本章小結 286
11.6 練習題 286
第12章 五子棋 287
12.1 游戲簡介 287
12.2 游戲規則 287
12.2.1 《五子棋》游戲的 棋盤和棋子 287
12.2.2 《五子棋》游戲的 基本規則 288
12.2.3 落子順序 288
12.3 游戲開發核心思路 288
12.3.1 繪制棋盤 288
12.3.2 繪制棋子 289
12.3.3 落子 289
12.3.4 獲勝規則 289
12.3.5 判斷黑方禁手功能 290
12.3.6 游戲流程圖 290
12.4 游戲實現 291
12.4.1 前期準備 291
12.4.2 初始化棋盤地圖 292
12.4.3 編寫落子框架 294
12.4.4 落子 296
12.4.5 連子判斷和勝負判斷 297
12.5 本章小結 302
12.6 練習題 302
第13章 跳棋 303
13.1 游戲簡介 303
13.2 游戲規則 303
13.3 游戲開發核心思路 304
13.3.1 棋盤排列 304
13.3.2 生成棋子 305
13.3.3 棋子在Unity中笛卡兒
坐標系下的位置映射 305
13.3.4 計算可移動位置 306
13.3.5 回合限制 307
13.3.6 游戲勝負判斷 307
13.3.7 游戲流程圖 307
13.4 游戲實現 308
13.4.1 前期準備 308
13.4.2 創建棋格 310
13.4.3 創建棋子 312
13.4.4 選擇棋子 314
13.4.5 判斷鄰近可走棋格 316
13.4.6 單步移動棋子 319
13.4.7 跳子 320
13.4.8 回合限制 322
13.4.9 勝負判斷 324
13.5 本章小結 327
13.6 練習題 327