新印象 Unity 2020遊戲開發基礎與實戰

新印象 Unity 2020遊戲開發基礎與實戰

《新印象 Unity 2020遊戲開發基礎與實戰》是2021年人民郵電出版社出版的圖書,作者是杜亞南。

基本介紹

  • 中文名:新印象 Unity 2020遊戲開發基礎與實戰
  • 作者:杜亞南
  • 出版時間:2021年10月1日
  • 出版社:人民郵電出版社
  • ISBN:9787115553645
  • 開本:16 開
  • 裝幀:平裝
內容簡介,作者簡介,圖書目錄,

內容簡介

這是一本以技術講解與項目實戰為主的Unity遊戲開發教程圖書。本書以簡潔明快的語言對Unity的重點知識進行了講解,配合詳細的圖文注釋和大量的項目實例,讓讀者能夠輕鬆快速地入門Unity,同時在本書後面的章節中也包含了很多遊戲編程中的進階知識,可供基礎較好的讀者進行拓展。另外,本書還為每個章節中的項目實戰提供了配套視頻,視頻中通過講解項目實戰來詳細講解每章的重點知識,以便讀者更加輕鬆地入門。
全書共16章。第1~4章為Unity基礎部分,主要介紹Unity的基礎操作和與編程相關的知識;第5~10章為Unity進階部分,主要按照“物理系統→粒子系統→動畫系統→導航系統→遊戲界面系統→2D遊戲開發”這一流程介紹Unity遊戲開發的核心技術和思路;第11~15章為Unity拓展部分,主要介紹數據網路、AR和VR等高級技術的使用;第16章為3D遊戲開發綜合實例,讓讀者以一個完整的實戰項目來結束本書的學習。
本書既面向初學者,又為具備Unity基礎而想更進一步學習或是需要一本Unity工具書查詢的讀者提供了便捷的渠道。全書內容均採用Unity 2020和Visual Studio 2019編寫,請讀者使用同樣或更高的版本學習。

作者簡介

9年技術開發及項目團隊管理經驗,曾就職於北京遠景天圖科技有限公司,製作多款遊戲與企業套用,在iOS、HTML5、.NET、Unity等方面有很深的造詣。後擔任多年北京線下培訓機構iOS主管與Unity總監,授課經驗豐富,風格幽默風趣,課程實戰性強。曾打造iOS與Unity方向完整的線下課程體系,非常適合零基礎和剛入門的學員系統深入學習,深受學生與編程愛好者的歡迎。

圖書目錄

第1章 基礎知識 025
1.1 遊戲引擎026
1.1.1 認識遊戲引擎 026
1.1.2 Unity的優勢 026
1.2 下載與安裝 027
1.2.1 Unity Hub的下載與安裝 027
1.2.2 Visual Studio的下載與安裝 029
1.3 認識編輯器029
1.3.1 設定腳本編輯器與語言 029
1.3.2 了解編輯器結構 030
1.3.3 管理項目檔案 032
1.3.4 管理遊戲物體 033
1.3.5 遊戲場景設定 034
1.3.6 預覽遊戲 035
1.3.7 管理“控制台”面板 036
第2章 打造3D遊戲世界 037
2.1 操控物體038
2.1.1 了解3D坐標系 038
2.1.2 世界坐標系與本地坐標系 038
2.1.3 創建實物 039
2.1.4 物體中心點 039
2.1.5 物體的操作 040
實例:製作電腦桌 041
2.2 3D模型042
2.2.1 格線 042
2.2.2 材質 043
2.2.3 資源商店. 044
實例:導入商店資源 045
2.3 3D場景元素046
2.3.1 地形 046
技術專題:繪製紋理 048
技術專題:抬高地面 049
2.3.2 樹木 049
2.3.3 草細節 050
2.3.4 水效果 051
2.4 綜合案例:打造野外風景051
2.4.1 遊戲描述 051
2.4.2 創建地形 052
2.4.3 繪製地表 053
2.4.4 添加植被和河流 053
2.4.5 角色預覽 054
第3章 遊戲腳本基礎 055
3.1 第一個組件腳本 056
3.1.1 什麼是組件 056
3.1.2 組件腳本的創建 056
3.1.3 組件的使用 057
技術專題:區分兩種貼上組件的方式 058
3.1.4 腳本的生命周期 058
3.1.5 多個腳本的執行順序 059
3.2 遊戲物體 059
3.2.1 物體名稱和激活狀態 059
3.2.2 給物體設定一個標籤 060
3.2.3 給物體設定一個圖層 060
3.3 線性代數 061
3.3.1 標量與向量 061
3.3.2 向量的加法 061
3.3.3 向量的減法 062
3.3.4 點乘獲取夾角角度 062
3.3.5 叉乘獲取平面垂直向量 062
3.4 預製件的創建與使用 062
3.4.1 創建預製件 063
3.4.2 編輯預製件 063
3.4.3 添加組件與子物體 064
3.4.4 預製件變體 065
操作演示:搭建像素遊戲場景 065
3.5 遊戲常用API 066
3.5.1 Vector3常用屬性方法 066
3.5.2 Quaternion常用屬性方法 067
3.5.3 Debug常用屬性方法 067
操作演示:調試示例 067
3.5.4 GameObject常用屬性方法 068
技術專題:區分activeInHierarchy和activeSelf 068
3.5.5 Time常用屬性方法 068
3.5.6 Mathf常用屬性方法 068
3.5.7 Application 常用屬性方法 069
3.5.8 Scene常用屬性方法 069
3.5.9 Transform常用屬性方法 069
技術專題:區分Transform與Vector3中的向量 069
3.6 輸入控制069
3.6.1 鍵盤和滑鼠 069
3.6.2 虛擬軸 070
3.6.3 手機觸摸. 071
實例:虛擬軸的使用 072
3.7 綜合案例:爆破人073
3.7.1 遊戲描述 074
3.7.2 項目準備 074
3.7.3 角色控制 074
3.7.4 放置炸彈 075
3.7.5 安排敵人 076
3.7.6 釋放炸彈 077
3.7.7 攝像機跟隨 077
第4章 遊戲場景 079
4.1 場景燈光 080
4.1.1 巧用各式燈光 080
4.1.2 光照烘焙 081
操作演示:製作遊戲夜晚場景 082
4.2 場景攝像機084
4.2.1 選擇合適的攝像機 084
4.2.2 透視攝像機與正交攝像機 084
4.2.3 攝像機的顯示設定 085
技術專題:攝像機深度可以呈現的效果 085
技術專題:目標紋理的使用 086
4.3 多媒體套用086
4.3.1 為角色添加耳朵 086
4.3.2 為場景添加音頻源 086
4.3.3 通過腳本控制音頻效果 087
實例:控制音頻的播放和暫停 087
4.3.4 完成視頻的播放 088
實例:播放電視畫面 089
4.4 玩家角色控制090
4.4.1 角色控制器 090
4.4.2 通過腳本控制角色移動 090
技術專題:判斷角色控制器是否位於地面 091
4.5 綜合案例:尋寶遊戲 091
4.5.1 遊戲描述 091
4.5.2 項目準備 092
4.5.3 播放背景音樂 092
4.5.4 創建金幣特效 092
4.5.5 編寫寶箱腳本 093
第5章 物理系統 095
5.1 給物體添加重力 096
5.1.1 重力與剛體 096
5.1.2 剛體類常用的屬性方法 096
技術專題:剛體休眠原理 097
操作演示:通過剛體控制球體運動 097
5.2 給物理世界添加碰撞 098
5.2.1 牆體的碰撞 098
5.2.2 球體碰撞器 099
5.2.3 膠囊碰撞器 099
5.2.4 地形碰撞器 099
5.2.5 格線碰撞器 100
操作演示:製作簡易賽車 100
5.3 物理關節與材質 101
5.3.1 鉸鏈關節 102
操作演示:通過鉸鏈關節控制門的轉動 102
5.3.2 彈簧關節 103
5.3.3 固定關節 104
5.3.4 物理材質 104
5.4 碰撞與觸發檢測 105
5.4.1 碰撞檢測 105
5.4.2 觸發檢測 105
實例:逃脫遊戲 106
5.5 可以碰撞的射線 108
5.5.1 射線碰撞檢測 108
5.5.2 射線多碰撞檢測 108
技術專題:射線與圖層的碰撞 108
實例:點亮和熄滅蠟燭 109
5.6 綜合案例:飛船大戰110
5.6.1 遊戲描述 111
5.6.2 導入玩家飛船 111
5.6.3 移動飛船 112
5.6.4 天空環境 112
5.6.5 導入敵人飛船 113
5.6.6 生成敵機 114
5.6.7 添加玩家攻擊 114
第6章 粒子系統 117
6.1 粒子系統的使用 118
6.1.1 添加粒子系統 118
6.1.2 粒子系統的基本屬性 118
6.2 粒子的效果設定 119
6.2.1 粒子發射器 119
6.2.2 發射器形狀 119
6.2.3 粒子渲染效果 120
6.2.4 粒子速度 120
6.2.5 粒子顏色、大小與旋轉 120
技術專題:粒子的漸變調節 121
技術專題:粒子的形態調節 121
實例:製作煙花效果 122
6.2.6 其他功能模組 123
實例:製作火焰雨技能效果 123
6.3 線條效果 126
6.3.1 線段渲染器 126
操作演示:使用腳本繪製動態線條 127
實例:模擬畫圖 128
6.3.2 拖尾渲染器 129
操作演示:使用腳本製作拖尾旋轉效果 130
6.4 綜合案例:魔法大戰 131
6.4.1 遊戲描述 131
6.4.2 創建項目 132
6.4.3 角色控制 132
6.4.4 編寫魔法腳本 133
6.4.5 敵人孵化點 133
6.4.6 編寫敵人腳本 134
第7章 動畫系統 135
7.1 動畫 136
7.1.1 動畫組件 136
7.1.2 通過屬性製作動畫 137
技術專題:添加關鍵幀的另外3種方式 137
7.1.3 通過動畫曲線控制平滑效果 137
技術專題:動畫曲線的操作 138
7.1.4 執行一個幀事件 138
操作演示:製作門的開關動畫 138
7.2 動畫器 140
7.2.1 動畫器組件 140
7.2.2 動畫控制器 141
7.2.3 使用腳本切換動畫 142
操作演示:使用腳本控制跑步動畫 143
7.2.4 動畫剪輯常用屬性 145
7.2.5 編輯動畫曲線 145
7.2.6 Animator幀事件 146
7.2.7 混合動畫 147
7.2.8 動畫層 148
技術專題:狀態機的嵌套 148
7.2.9 Avatar遮罩 149
實例:播放混合動畫 149
7.2.10 反向動力學 151
實例:動作遊戲動畫的切換 153
7.3 綜合案例:潛入遊戲 157
7.3.1 遊戲描述 158
7.3.2 創建項目 158
7.3.3 製作角色動畫 159
7.3.4 添加敵人 162
7.3.5 添加終點 164
第8章 導航系統 165
8.1 導航格線區域 166
8.1.1 生成導航格線 166
技術專題:導航靜態設定 166
8.1.2 導航烘焙屬性 166
8.2 導航代理 167
8.2.1 導航格線代理 167
8.2.2 添加障礙物 168
技術專題:障礙物的格線切割 169
操作演示:躲避障礙物 169
8.3 設定導航格線連結 171
8.3.1 代理角色的掉落高度與跳躍距離 171
8.3.2 導航格線連結 172
8.4 設定導航區域 173
8.4.1 設定模擬區域 173
8.4.2 設定區域成本 173
操作演示:河流導航區域 174
實例:穿越斑馬線 175
8.5 綜合案例:塔防遊戲 178
8.5.1 遊戲描述 178
8.5.2 創建炮台和地板 179
8.5.3 設定敵人進攻路線 179
8.5.4 創建敵人孵化器 180
8.5.5 創建炮彈 181
8.5.6 設定炮台 182
8.5.7 完善場景 183
第9章 遊戲界面系統 185
9.1 了解UI基礎控制項 186
9.1.1 創建一個畫布 186
9.1.2 控制UI控制項的位置布局 187
操作演示:界面自適應布局 188
9.2 常用UI控制項 190
9.2.1 圖像 190
技術專題:製作九宮格圖片 191
9.2.2 各類文本 192
技術專題:增加文本效果 192
9.2.3 按鈕 193
9.2.4 文本框 193
9.2.5 選項 194
技術專題:製作複選框 194
9.2.6 下拉列表框 194
技術專題:用腳本設定球類運動項目 195
9.2.7 滾動視圖 195
技術專題:製作滾動視圖 196
9.2.8 滑動條 196
9.2.9 面板 196
實例:遊戲主界面的套用 197
9.3 常用UI組件 198
9.3.1 遮罩組件 198
9.3.2 內容尺寸適應器 199
9.3.3 垂直和水平布局組 199
9.3.4 格線布局組 199
技術專題:以格線方式平鋪圖像 200
實例:背包界面的套用 200
9.4 綜合案例:對話遊戲 202
9.4.1 遊戲描述 203
9.4.2 導入資源 203
9.4.3 對話界面 203
9.4.4 對話腳本 204
9.4.5 切換人物及背景 205
第10章 2D遊戲開發 207
10.1 製作2D遊戲 208
10.1.1 創建2D項目 208
10.1.2 創建精靈 208
10.2 瓦片地圖 209
10.2.1 創建瓦片地圖 209
技術專題:切片的3種類型 209
10.2.2 繪製瓦片地圖 211
操作演示:繪製花園 211
10.3 2D物理與動畫 213
10.3.1 精靈剛體與碰撞 213
技術專題:放大遊戲物體後如何不失真 213
技術專題:凍結角色旋轉 214
10.3.2 瓦片地圖碰撞器 214
10.3.3 2D動畫 215
實例:跳一跳 216
10.4 綜合案例:小島歷險記 218
10.4.1 遊戲描述 219
10.4.2 冒險小島 219
10.4.3 添加角色 221
10.4.4 吃果實得分 224
第11章 遊戲中的數據與網路 227
11.1 常用數據格式 228
11.1.1 輕量數據格式JSON 228
11.1.2 可擴展標記語言XML 229
11.1.3 CSV與Excel 230
實例:製作物品數據 231
11.1.4 SQLite 232
實例:運算元據庫 233
11.2 多執行緒 234
11.2.1 多執行緒的使用 234
11.2.2 協程的使用 234
11.3 網路請求的使用 236
11.3.1 網路請求 236
11.3.2 搭建簡易伺服器 236
11.3.3 網路請求的基本使用方法 236
11.3.4 Socket與TCP/IP 237
實例:Socket通信 238
11.4 綜合案例:登錄請求 239
11.4.1 項目描述 239
11.4.2 搭建伺服器 240
11.4.3 添加登錄UI控制項 240
11.4.4 創建登錄界面 240
11.4.5 解析登錄數據 241
第12章 使用設計模式完善代碼 243
12.1 代碼的狀態 244
12.1.1 理解狀態模式 244
12.1.2 非狀態模式代碼示例 244
實例:狀態模式的代碼實現 244
12.2 把複雜的代碼封裝起來 245
12.2.1 理解外觀模式 246
12.2.2 非外觀模式代碼示例 246
實例:外觀模式的代碼實現 246
12.3 單一的對象 247
12.3.1 理解單例模式 247
12.3.2 非單例模式代碼示例 248
實例:單例模式的代碼實現 248
12.4 定義一種觀察者模式 250
12.4.1 理解觀察者模式 250
12.4.2 非觀察者模式代碼示例 250
實例:觀察者模式的代碼實現 251
12.5 創建多對象的推薦方式 252
12.5.1 理解工廠模式 253
12.5.2 非工廠模式代碼示例 253
實例:工廠模式的代碼實現 253
12.6 綜合案例:簡易訊息框架 254
12.6.1 項目描述 254
12.6.2 訊息基類 255
12.6.3 音頻管理類 255
12.6.4 物品管理類 255
12.6.5 框架測試 256
第13章 Lua與人工智慧 257
13.1 遊戲領域的熱門語言 258
13.1.1 Lua腳本語言 258
13.1.2 xLua的使用 258
實例:使用xLua實現熱修復 259
13.2 人工智慧 260
13.2.1 模擬視覺感知 260
13.2.2 有限狀態機 261
實例:有限狀態機的實現 262
13.3 綜合案例:NPC智慧型巡邏 264
13.3.1 遊戲描述 264
13.3.2 迷宮初成 264
13.3.3 NPC動畫 265
13.3.4 NPC巡邏 265
第14章 虛擬現實與增強現實 267
14.1 增強現實 268
14.1.1 增強現實 268
14.1.2 Vuforia 268
實例:在Unity中使用Vuforia 270
14.2 虛擬現實 271
14.2.1 VR環境搭建 271
14.2.2 進入VR世界 272
實例:Unity在VR世界中的套用 272
14.3 綜合案例:VR保齡球 274
14.3.1 遊戲描述 274
14.3.2 VR可視化 275
14.3.3 抓取與投擲 275
14.3.4 持續生成 276
14.3.5 自動更新 277
第15章 項目部署 279
15.1 使用AssetBundle管理資源 280
15.1.1 生成AssetBundle 280
15.1.2 使用AssetBundle載入資源 281
15.1.3 使用AssetBundle載入依賴 281
15.2 遊戲部署 282
15.2.1 打包設定 282
15.2.2 Windows和Mac平台部署 283
15.2.3 Android平台部署 283
技術專題:安裝Android或iOS模組 284
15.2.4 iOS平台部署 284
15.3 綜合案例:Android平台的部署 285
15.3.1 項目描述 285
15.3.2 部署準備 285
15.3.3 部署設定 286
技術專題:按順序顯示兩個啟動Logo 287
15.3.4 打包APK 288
第16章 綜合案例:角色扮演遊戲 289
16.1 聖域之戰 290
16.1.1 玩法介紹 290
16.1.2 實現路徑 290
16.2 古老的亞特拉斯帝國 294
16.2.1 帝國崛起 294
16.2.2 歌聲悠揚 296
16.3 主角:新手上路 296
16.3.1 遊覽新手村 297
16.3.2 活動身手 299
16.4 任務:擊殺兩個石頭人 304
16.4.1 解析任務數據 304
16.4.2 管理任務數據 305
16.5 注意:出現敵人 306
16.5.1 敵人靠近 306
16.5.2 敵人孵化器 309
16.6 緊急:血量減少 310
16.6.1 滿血血條 310
16.6.2 更新血條 310
16.7 對話:找到瑪爾 311
16.7.1 任務UI 311
16.7.2 接受任務 312
16.8 攻擊:釋放技能 313
16.8.1 技能特效 313
16.8.2 傷害值 317
16.8.3 掉落寶物 319

熱門詞條

聯絡我們