Unity實戰(第2版)

Unity實戰(第2版)

《Unity實戰(第2版)》是2019年1月清華大學出版社出版的圖書,作者是[美]Joseph Hocking。

基本介紹

  • 中文名:Unity實戰(第2版)
  • 作者:[美]Joseph Hocking
  • 出版社:清華大學出版社
  • 出版時間:2019年1月
  • 定價:69.8 元
  • ISBN:9787302518952
內容簡介,圖書目錄,

內容簡介

《Unity實戰(第2版)》詳細介紹如何用Unity編寫和部署遊戲。探討許多有趣的示例,實踐Unity直觀的工作流工具和先進的呈現引擎。這個實用指南揭示遊戲開發過程的各個方面,包括最初的基礎工作、創建自定義AI腳本和構建易於閱讀的UI。應讀者的要求,全新修訂的第2版增加一個新章節,介紹如何使用Unity的擴展2D工具包來構建2D平台。

圖書目錄

第Ⅰ部分 起步
第1章 初識Unity 3
1.1 為什麼Unity如此優秀 4
1.1.1 Unity的優勢 4
1.1.2 要意識到的缺點 6
1.1.3 使用Unity構建的遊戲示例 7
1.2 如何使用Unity 10
1.2.1 Scene視圖、Game視圖和工具列 11
1.2.2 使用滑鼠和鍵盤 12
1.2.3 Hierarchy視圖和Inspector面板 13
1.2.4 Project和Console標籤 13
1.3 開始使用Unity編程 14
1.3.1 代碼在Unity中運行:腳本組件 15
1.3.2 使用MonoDevelop,跨平台的IDE 16
1.3.3 列印到控制台:Hello World! 18
1.4 小結 20
第2章 構建一個令人置身3D空間的演示遊戲 21
2.1 在開始之前 22
2.1.1 對項目做計畫 22
2.1.2 了解3D坐標空間 23
2.2 開始項目:在場景中放置對象 25
2.2.1 布景:地板、外牆和內牆 25
2.2.2 燈光和攝像機 27
2.2.3 玩家的碰撞器和視口 28
2.3 移動對象:套用變換的腳本 29
2.3.1 圖示說明如何通過編程實現移動 30
2.3.2 編寫代碼實現圖中演示的運動 30
2.3.3 本地和全局坐標空間 32
2.4 用於觀察周圍的組件腳本:MouseLook 33
2.4.1 跟蹤滑鼠移動的水平旋轉 34
2.4.2 有限制的垂直旋轉 35
2.4.3 同時水平旋轉和垂直旋轉 36
2.5 鍵盤輸入組件:第一人稱控制項 38
2.5.1 回響按下的鍵 39
2.5.2 設定獨立於計算機運行速度的移動速率 40
2.5.3 移動CharacterController以檢測碰撞 41
2.5.4 將組件調整為走路而不是飛翔 42
2.6 小結 44
第3章 為3D遊戲添加敵人和子彈 45
3.1 通過射線射擊 46
3.1.1 什麼是射線發射 46
3.1.2 使用命令ScreenPointToRay射擊 47
3.1.3 為準心和擊中點添加可視化指示器 49
3.2 編寫能回響的目標 52
3.2.1 確定被擊中的對象 52
3.2.2 警告目標被擊中 53
3.3 基本漫遊AI 54
3.3.1 圖解基礎AI的工作原理 54
3.3.2 使用射線發射發現障礙物 55
3.3.3 跟蹤角色的狀態 56
3.4 生成敵人預設 58
3.4.1 什麼是預設 58
3.4.2 創建敵人預設 58
3.4.3 在不可見的SceneController中實例化 59
3.5 通過實例化對象進行射擊 62
3.5.1 創建子彈預設 62
3.5.2 發射子彈並和目標碰撞 63
3.5.3 傷害玩家 65
3.6 小結 66
第4章 為遊戲開發圖形 67
4.1 了解美術資源 67
4.2 構建基礎3D場景:白盒 70
4.2.1 白盒的解釋 70
4.2.2 為關卡繪製地板平面圖 71
4.2.3 根據平面圖布局幾何體 71
4.3 使用2D圖像給場景貼圖 73
4.3.1 選擇檔案格式 73
4.3.2 導入圖像檔案 74
4.3.3 套用圖像 76
4.4 使用貼圖圖像產生天空視覺效果 77
4.4.1 什麼是天空盒 77
4.4.2 創建一個新天空盒材質 78
4.5 使用自定義3D模型 80
4.5.1 選擇檔案格式 81
4.5.2 導出和導入模型 81
4.6 使用粒子系統創建效果 84
4.6.1 調整默認效果的參數 85
4.6.2 為火焰套用新貼圖 86
4.6.3 將粒子效果附加到3D對象上 87
4.7 小結 88
第Ⅱ部分 輕鬆工作
第5章 使用Unity的2D功能構建一款記憶力遊戲 91
5.1 設定2D圖形 92
5.1.1 為項目做準備 92
5.1.2 顯示2D圖像(亦稱精靈) 94
5.1.3 將攝像機切換為2D模式 96
5.2 構建卡片對象並使它回響單擊 97
5.2.1 從精靈中構建對象 97
5.2.2 滑鼠輸入代碼 98
5.2.3 當單擊時顯示卡片正面 99
5.3 顯示不同的卡片圖像 99
5.3.1 通過編程載入圖像 99
5.3.2 通過不可見的SceneController設定圖像 100
5.3.3 實例化一疊卡片 102
5.3.4 打亂卡片 104
5.4 實現匹配和匹配得分 105
5.4.1 保存並比較翻開的卡片 106
5.4.2 隱藏不匹配的卡片 106
5.4.3 顯示分數的文本 107
5.5 重啟按鈕 109
5.5.1 使用SendMessage編寫UIButton組件 109
5.5.2 從SceneController中調用LoadScene 111
5.6 小結 112
第6章 創建基本的2D平台遊戲 113
6.1 設定圖形 114
6.1.1 放置牆壁和地板 114
6.1.2 導入精靈表 115
6.2 左右移動玩家 116
6.2.1 編寫鍵盤控制 117
6.2.2 與牆壁碰撞 117
6.3 播放精靈動畫 118
6.3.1 講解Mecanim動畫系統 118
6.3.2 在代碼中觸發動畫的播放 120
6.4 添加跳躍功能 121
6.4.1 因重力而下落 121
6.4.2 施加向上的躍動 122
6.4.3 檢測地面 123
6.5 平台遊戲的附加功能 123
6.5.1 不同尋常的樓層:斜坡和單向平台 124
6.5.2 實現移動的平台 125
6.5.3 攝像機控制 128
6.6 小結 129
第7章 在遊戲中放置GUI 131
7.1 在開始寫代碼之前 133
7.1.1 立即模式GUI還是高級2D界面 133
7.1.2 規劃布局 134
7.1.3 導入UI圖像 134
7.2 設定GUI顯示 135
7.2.1 為界面創建畫布 135
7.2.2 按鈕、圖像和文本標籤 136
7.2.3 控制UI元素的位置 139
7.3 編寫UI中的互動 140
7.3.1 編寫不可見的UIController 141
7.3.2 創建彈出視窗 143
7.3.3 使用滑動條和輸入域設定值 145
7.4 通過回響事件更新遊戲 147
7.4.1 集成事件系統 148
7.4.2 從場景中廣播和偵聽事件 148
7.4.3 從HUD廣播和偵聽事件 150
7.5 小結 151
第8章 創建第三人稱3D遊戲:玩家移動和動畫 153
8.1 將攝像機視圖調整為第三人稱視角 155
8.1.1 導入一個用於觀察的角色 155
8.1.2 將陰影添加到場景 156
8.1.3 攝像機環繞玩家角色 158
8.2 編寫程式控制攝像機的相對移動 160
8.2.1 旋轉角色,以朝向移動方向 160
8.2.2 朝某方向移動 162
8.3 實現跳躍動作 164
8.3.1 套用垂直速度和加速度 164
8.3.2 修改地面檢測來處理邊緣和斜坡 166
8.4 設定玩家角色上的動畫 169
8.4.1 在導入的模型上定義動畫剪輯 171
8.4.2 為動畫創建動畫控制器 172
8.4.3 編寫操作Animator組件的代碼 175
8.5 小結 176
第9章 在遊戲中添加互動設施和物件 177
9.1 創建門和其他設施 178
9.1.1 用按鍵控制開關的門 178
9.1.2 用開門之前檢查距離和朝向 179
9.1.3 創建一個變色監控器 181
9.2 通過碰撞與對象互動 182
9.2.1 和具有物理功能的障礙物碰撞 182
9.2.2 用觸發器對象操作門 183
9.2.3 收集當前關卡散落的物件 186
9.3 管理倉庫數據和遊戲狀態 187
9.3.1 設定玩家和倉庫管理器 188
9.3.2 編程實現遊戲管理器 189
9.3.3 把物品存儲在集合對象中:List與Dictionary 193
9.4 使用和裝備物品的倉庫UI 195
9.4.1 在UI中顯示倉庫物品 195
9.4.2 裝備一個用來開門的鑰匙 198
9.4.3 通過使用血量包來恢復玩家的血量 199
9.5 小結 201
第Ⅲ部分 衝刺階段
第10章 將遊戲連線到網際網路 205
10.1 創建戶外場景 207
10.1.1 使用天空盒生成天空視覺效果 207
10.1.2 通過代碼設定大氣環境 208
10.2 從網際網路服務下載天氣數據 210
10.2.1 使用協程請求HTTP數據 213
10.2.2 解析XML 217
10.2.3 解析JSON 218
10.2.4 基於天氣數據影響場景 220
10.3 添加一個網路布告欄 221
10.3.1 從網際網路載入圖像 222
10.3.2 在布告欄上顯示圖像 224
10.3.3 快取下載的圖像以供重用 225
10.4 將數據傳送到Web伺服器 227
10.4.1 跟蹤當前的天氣:傳送post請求 227
10.4.2 PHP中的伺服器端代碼 229
10.5 小結 230
第11章 播放音頻:音效和音樂 231
11.1 導入音效 232
11.1.1 支持的檔案格式 232
11.1.2 導入音頻檔案 234
11.2 播放音效 235
11.2.1 音頻剪輯、音源和聲音偵聽器 235
11.2.2 設定循環播放的聲音 236
11.2.3 用代碼觸發音效 237
11.3 音頻控制接口 238
11.3.1 建立中心AudioManager 239
11.3.2 音量控制UI 241
11.3.3 播放UI聲音 244
11.4 背景音樂 245
11.4.1 播放循環音樂 245
11.4.2 獨立控制音樂的音量 248
11.4.3 歌曲間的淡入淡出 250
11.5 小結 253
第12章 將各部分整合為一個完整的遊戲 255
12.1 再次利用項目構建動作RPG演示遊戲 256
12.1.1 將多個項目的資源和代碼裝配在一起 257
12.1.2 編寫指向-單擊控制項:移動和設備 259
12.1.3 使用新界面替換舊GUI 264
12.2 開發總體的遊戲結構 270
12.2.1 控制任務流和多個關卡 270
12.2.2 到達出口,完成一個關卡 274
12.2.3 被敵人捉到時關卡失敗 276
12.3 處理玩家在遊戲過程中的進度 278
12.3.1 保存並載入玩家進度 278
12.3.2 完成三個關卡,遊戲通關 282
12.4 小結 284
第13章 將遊戲部署到玩家的設備 285
13.1 構建用於桌面的套用包:Windows、Mac和Linux 287
13.1.1 構建套用 288
13.1.2 調整Player Settings:設定遊戲的名稱和圖示 289
13.1.3 平台依賴的編譯 290
13.2 為Web構建遊戲 292
13.2.1 Unity Player和HTML5/WebGL 292
13.2.2 構建嵌入網頁的遊戲 292
13.2.3 與瀏覽器中的JavaScript通信 292
13.3 構建移動套用的平台:iOS和Android 296
13.3.1 設定構建工具 296
13.3.2 貼圖壓縮 300
13.3.3 開發外掛程式 301
13.4 小結 308
附錄A 場景導航和快捷鍵 309
A.1 使用滑鼠進行場景導航 309
A.2 有用的快捷鍵 310
附錄B 與Unity一同使用的外部工具 311
B.1 編程工具 311
B.1.1 Visual Studio 311
B.1.2 Xcode 311
B.1.3 Android SDK 312
B.1.4 SVN、Git或Mercurial 312
B.2 3D美術套用 312
B.2.1 Maya 312
B.2.2 3ds Max 312
B.2.3 Blender 313
B.2.4 SketchUp 313
B.3 2D圖像編輯器 313
B.3.1 Photoshop 313
B.3.2 GIMP 313
B.3.3 TexturePacker 313
B.3.4 Aseprite, Pyxel Edit 314
B.4 音頻軟體 314
B.4.1 Pro Tools 314
B.4.2 Audacity 314
附錄C 在Blender中建模一個板凳 315
C.1 構建格線幾何體 316
C.2 模型的貼圖映射 319
附錄D 線上學習資源 323
D.1 其他指南 323
D.2 代碼庫 324
後序 327

熱門詞條

聯絡我們