Unity 2D與3D手機游戲開發實戰
內容描述
本書基於Unity 2020,詳細講解Unity的主要功能和用法,以及游戲開發的方法和技巧,並剖析了3個實戰項目:一個簡單的2D打磚塊游戲、一個3D動作RPG游戲和一個3D對戰射擊游戲。通過以上內容,幫助讀者掌握Unity製作游戲的方法,以快速進入Unity 2D與3D游戲開發之門。
本書分為13章,內容包括Unity 2020的安裝和基本界面,理解Unity的世界生成,腳本基礎,界面及輸入,2D游戲開發,製作2D打磚塊游戲,3D物理、動畫和導航,Unity 3D開發的簡單框架及常用技巧,3D動作游戲示例,更復雜的3D動作游戲,Unity其他功能,簡單的3D射擊游戲實戰,商城資源等。
本書適合Unity 3D游戲開發初學者、游戲與數字孿生開發人員閱讀,也適合作為高等院校、中職學校和培訓機構電腦游戲開發相關專業師生的教學參考書。
目錄大綱
目 錄
第 1 章 Unity的安裝和基本界面1
1.1 Unity的安裝1
1.1.1 Unity ID1
1.1.2 Unity Hub的安裝和使用2
1.1.3 基礎設置4
1.1.4 提示和總結5
1.2 Unity的基本界面5
1.2.1 共有操作6
1.2.2 項目窗口6
1.2.3 層級窗口7
1.2.4 場景視圖8
1.2.5 檢查器窗口9
1.2.6 游戲視圖10
1.2.7 控制台窗口11
1.2.8 資源商城12
1.2.9 包管理器12
1.2.10 其他常用操作12
1.2.11 提示和總結12
第2章 理解Unity的世界並生成第一個
應用13
2.1 理解Unity的世界13
2.1.1 虛擬的三維世界13
2.1.2 游戲對象和Transform13
2.1.3 游戲對象的層級結構14
2.1.4 組件決定游戲對象14
2.1.5 場景和攝像機14
2.1.6 資源14
2.2 Unity的項目結構15
2.3 Unity的坐標16
2.4 Unity項目目錄說明17
2.4.1 項目目錄17
2.4.2 Assets下的特殊目錄17
2.5 生成第一個應用18
2.5.1 生成設置和玩家設置18
2.5.2 生成第一個應用18
2.6 提示和總結19
第3章 Unity腳本基礎內容20
3.1 C#基礎20
3.2 Unity 3D的內置數據類型21
3.3 MonoBehaviour類22
3.3.1 腳本組件22
3.3.2 特殊賦值方式22
3.3.3 Unity基礎事件23
3.4 Debug類24
3.5 游戲對象的基本操作24
3.5.1 獲取指定游戲對象24
3.5.2 其他操作26
3.6 游戲對象位置的旋轉和縮放27
3.7 Time和移動、旋轉、縮放28
3.7.1 Time的3個常用屬性28
3.7.2 移動29
3.7.3 旋轉30
3.7.4 縮放30
3.8 組件獲取和基本操作31
3.8.1 獲取指定組件31
3.8.2 組件的基本操作32
3.9 應用退出和場景控制33
3.9.1 應用退出33
3.9.2 場景加載33
3.9.3 DontDestroyOnLoad和單實例34
3.10 協程和重復34
3.11 ScriptableObject36
3.12 其他37
3.13 提示和總結42
第4章 Unity的UI和輸入43
4.1 常用資源導入後的設置43
4.2 預製件45
4.3 攝像機46
4.4 Unity UI48
4.4.1 RectTransform 48
4.4.2 RectTransform的程序控制49
4.4.3 畫布53
4.4.4 文本和圖像54
4.4.5 交互游戲對象56
4.4.6 事件響應57
4.5 輸入62
4.5.1 鍵盤按鍵輸入62
4.5.2 鼠標輸入62
4.5.3 觸屏輸入63
4.5.4 輸入管理器64
4.5.5 單擊物體64
4.5.6 UI擊穿65
4.6 音頻播放66
第5章 Unity的2D開發68
5.1 2D開發基礎設置68
5.2 圖像資源和精靈編輯器工具69
5.3 2D基礎組件和顯示順序70
5.4 2D物理71
5.4.1 2D剛體71
5.4.2 2D碰撞器組件 72
5.4.3 2D關節組件和2D物理材質73
5.4.4 2D效果器組件74
5.5 2D動畫74
5.6 瓦片地圖75
第6章 製作2D打磚塊游戲77
6.1 游戲思路和結構77
6.2 導入和基礎設置79
6.3 製作瓦片地圖80
6.4 滑塊和小球81
6.5 添加界面83
6.6 編寫主要邏輯84
6.7 調試和完善85
第7章 3D物理、動畫和導航87
7.1 物理系統87
7.1.1 剛體組件87
7.1.2 碰撞器組件88
7.1.3 關節和物理材質90
7.2 動畫91
7.2.1 動畫剪輯92
7.2.2 使用Animation窗口製作動畫
剪輯93
7.2.3 動畫控制器94
7.2.4 動畫器組件和動畫的程序控制96
7.3 導航尋路97
7.4 拖尾和線100
7.4.1 拖尾100
7.4.2 線100
7.4.3 其他共同設置101
第8章 Unity開發簡單框架及常用
技巧104
8.1 多個Manager的簡單框架104
8.1.1 演化過程104
8.1.2 多個Manager框架的說明105
8.2 ScriptableObject的使用106
8.3 AI的簡單實現107
第9章 動作游戲示例109
9.1 項目結構109
9.2 基本設置110
9.3 指針切換112
9.3.1 場景設置113
9.3.2 編寫並設置腳本113
9.4 單擊移動玩家114
9.4.1 導航區域烘焙114
9.4.2 玩家游戲對象設置114
9.4.3 鼠標控制器腳本修改115
9.4.4 玩家控制器腳本編輯116
9.4.5 運行測試116
9.5 玩家動畫製作和移動匹配117
9.5.1 新建默認動作控制器118
9.5.2 添加移動用的混合樹118
9.5.3 添加攻擊和死亡狀態119
9.5.4 添加玩家動作控制器120
9.5.5 修改玩家控制器腳本120
9.6 玩家攻擊敵人120
9.7 攝像機鏡頭設置122
9.8 怪物攻擊123
9.8.1 骷髏動畫控制器製作123
9.8.2 骷髏預製件製作123
9.8.3 編寫基本的有限狀態機124
9.8.4 編寫死亡和站樁狀態125
9.8.5 編寫巡邏狀態125
9.8.6 編寫追擊狀態126
第10章 更復雜的3D動作游戲127
10.1 角色狀態127
10.2 傷害計算129
10.2.1 修改腳本添加傷害計算130
10.2.2 添加動作事件131
10.2.3 運行測試133
10.3 等級提升133
10.4 敵人血量顯示135
10.4.1 添加血條預製件135
10.4.2 腳本修改136
10.4.3 設置敵人137
10.5 玩家血量經驗值顯示137
10.5.1 設置玩家血量界面138
10.5.2 添加並編輯玩家控制器腳本139
10.5.3 修改玩家控制器腳本140
10.5.4 添加並編輯玩家信息顯示
腳本140
10.6 當前場景傳送140
10.6.1 添加傳送目標點腳本141
10.6.2 添加傳送起始點腳本141
10.6.3 傳送點預製件設置142
10.6.4 添加並編寫場景管理器腳本143
10.7 玩家數據的保存和讀取143
10.8 不同場景傳送144
10.8.1 添加主場景的傳送點144
10.8.2 設置預製件144
10.8.3 另一個場景的設置145
10.8.4 可用場景設置146
10.8.5 腳本修改146
10.9 菜單場景147
第11章 Unity其他功能介紹149
11.1 新的輸入工具Input System149
11.2 鏡頭利器Cinemachine150
11.3 提升顯示效果的URP和HDRP150
11.4 更好的文本顯示Text Mesh Pro152
11.5 實時動畫利器Timeline153
11.6 動態載入資源的Addressables
AssetBundle153
11.7 官方的可視化腳本Bolt154
第12章 簡單的射擊游戲155
12.1 新建項目並導入模型資源155
12.2 導入動作控制158
12.3 改造控制160
12.3.1 視角改造160
12.3.2 添加基本動作161
12.4 添加武器系統163
12.4.1 導入武器系統插件
Easy Weapons163
12.4.2 設置模型和武器164
12.4.3 添加並設置擊中效果166
12.5 添加NPC及其AI168
12.5.1 導入AI Behavior插件168
12.5.2 添加AI Behavior170
12.5.3 設置動畫170
12.5.4 添加巡邏狀態172
12.5.5 添加攻擊狀態173
12.5.6 添加受到攻擊和死亡狀態175
12.5.7 添加並修改程序實現攻擊
效果176
12.6 實現網絡對戰178
12.6.1 插件導入和基礎設置178
12.6.2 創建房間功能181
12.6.3 開始游戲的倒計時185
12.6.4 生成對戰玩家預製件185
12.6.5 添加生成玩家功能187
12.6.6 位置同步187
12.6.7 同步動作188
12.6.8 同步射擊和裝彈效果188
12.6.9 添加菜單和結束過渡189
第13章 商城資源介紹191
13.1 Unity官方資源191
13.1.1 人物移動和鏡頭控制資源191
13.1.2 常用粒子特效資源Unity
Particle Pack192
13.1.3 不需要寫代碼的游戲開發套件
Game Kit193
13.1.4 官方其他資源193
13.2 常用資源196
13.2.1 常用的移動插件DOTween196
13.2.2 可視化狀態機Playmaker196
13.2.3 可視化行為樹
Behavior Designer197
13.3 常用的子系統197
13.3.1 對話背包和任務系統197
13.3.2 戰鬥系統及其他198
13.3.3 類型游戲製作資源201
13.3.4 通用的游戲製作資源202
13.3.5 網絡相關插件204