本書以實例教學為主線,循序漸進地介紹了Unity在游戲開發方面的不同功能。第1章,由零開始,引導讀者熟悉Unity編輯器的各個功能模塊和特性。第2~4章是3個不同特色的3D游戲實例,使讀者對Unity游戲開發有一個較的認識。第5章是一個2D游戲實例,多方位地介紹了Unity在2D游戲方面的應用。第6章和第7章,重點介紹了Unity在網絡方面的應用。第8~10章介紹了如何將Unity游戲移植到網頁、iOS和Android平臺。第11章詳細介紹了Unity的新GUI系統。第12章是關于創建Unity游戲美術資源的工作流程。第13章和第14章分別介紹了行為樹和Play Maker兩款插件,適合各類游戲開發者。另外,本書后附有C#語言的快速教程,幫助缺乏程序開發基礎的讀者快速入門,同時也包括Unity編輯器菜單欄的中英文對照表供讀者查閱。 本書提供了所有實例的源代碼與素材文件,供讀者上機練習使用,讀者可從網上下載本書資源文件。 本書適用于廣大游戲開發人員、游戲開發愛好者、軟件培訓機構以及計算機專業的學生等。
本書案例源代碼及素材文件的下載地址:pan.baidu.com/s/1nvRz0Sh 深受讀者贊譽的Unity游戲開發原創經典,博學Unity游戲開發工程師十年經驗分享根據Unity 5.6.2全新升級,多款熱門游戲實戰教學,Unity3D\2D手游開發核心技術大揭秘新增Unity GUI及DOTween Pro、EnhancedScroller、行為樹AI插件Behavior Designer、Play Maker等,內容更精彩
適用于Unity 5.x,暢銷書全新升級
金璽曾,博學游戲開發工程師,擁有10余年游戲開發經驗,3D塔防游戲《野人大作戰》主要開發者。曾在上海盛大網絡、上海愛客士電腦軟件有限公司任開發經理,目前在個人創業公司從事VR及游戲開發。
目 錄
第1章 Unity基礎 1
1.1 初識游戲引擎和Unity 2
1.2 運行Unity 3
1.2.1 Unity的版本 3
1.2.2 下載并安裝Unity 4
1.2.3 在線激活Unity 4
1.2.4 運行示例工程 4
1.3 創建一個Hello World程序 7
1.3.1 安裝Visual Studio 7
1.3.2 編寫腳本 7
1.3.3 編譯輸出 9
1.4 調試程序 10
1.4.1 顯示Log 10
1.4.2 在Visual Studio中設置斷點 11
1.4.3 在MonoDevelop中設置斷點 12
1.5 Unity腳本基礎 12
1.5.1 Script(腳本)組件 12
1.5.2 腳本的執行順序 12
1.5.3 腳本的序列化 13
1.5.4 組件式的編程 14
1.5.5 協程編程 15
1.6 預置文件Prefab 16
1.7 實例化 17
1.8 讀取資源 18
1.9 保存工程 18
1.10 小結 18
第2章 太空射擊游戲 19
2.1 游戲介紹 20
2.1.1 游戲操作 20
2.1.2 主角和敵人 20
2.1.3 游戲UI 20
2.2 導入美術資源 20
2.3 創建場景 21
2.3.1 創建火星背景和星空動畫 22
2.3.2 設置攝像機和燈光 25
2.4 創建主角 27
2.4.1 創建腳本 27
2.4.2 控制飛船移動 28
2.4.3 創建子彈 30
2.4.4 創建子彈Prefab 31
2.4.5 發射子彈 32
2.5 創建敵人 33
2.6 物理碰撞 34
2.6.1 添加碰撞體 34
2.6.2 觸發碰撞 35
2.7 高級敵人 38
2.7.1 創建敵人 38
2.7.2 發射子彈 39
2.8 聲音與特效 41
2.9 敵人生成器 43
2.10 游戲UI和戰斗管理 45
2.10.1 創建顯示得分的UI界面 45
2.10.2 創建顯示游戲失敗的
UI界面 46
2.10.3 編寫腳本 46
2.11 關卡跳轉 49
2.12 用鼠標控制主角 51
2.13 的碰撞檢測 53
2.14 自動創建Prefab 55
2.15 游戲 57
2.16 使用Pool Boss創建緩存池 59
2.17 小結 62
第3章 及時人稱射擊游戲 63
3.1 策劃 64
3.1.1 游戲介紹 64
3.1.2 UI界面 64
3.1.3 主角 64
3.1.4 敵人 64
3.2 游戲場景 64
3.3 主角 65
3.3.1 角色控制器 65
3.3.2 攝像機 67
3.3.3 武器 68
3.4 敵人 69
3.4.1 尋路 69
3.4.2 設置動畫 71
3.4.3 行為 72
3.5 UI界面 76
3.6 交互 80
3.6.1 主角的射擊 80
3.6.2 敵人的進攻與死亡 82
3.7 出生點 84
3.8 小地圖 87
3.9 小結 90
第4章 塔防游戲 91
4.1 策劃 92
4.1.1 場景 92
4.1.2 攝像機 92
4.1.3 勝負判定 92
4.1.4 敵人 92
4.1.5 防守單位 92
4.1.6 UI界面 92
4.2 地圖編輯器 93
4.2.1 “格子”數據 93
4.2.2 在Inspector窗口添加自定義
UI控件 95
4.2.3 創建一個自定義窗口 98
4.3 游戲場景 99
4.4 制作UI 100
4.5 創建游戲管理器 103
4.6 攝像機 106
4.7 路點 109
4.8 敵人 113
4.9 敵人生成器 116
4.9.1 創建敵人生成器 116
4.9.2 遍歷敵人 118
4.10 防守單位 119
4.11 生命條 128
4.12 小結 130
第5章 2D游戲 131
5.1 Unity 2D系統簡介 132
5.2 創建Sprite 132
5.2.1 使用SpriteEditor創建Sprite 132
5.2.2 使用SpritePacker創建Sprite 134
5.2.3 圖層排序 135
5.2.4 Sprite邊框和重復顯示 136
5.3 動畫制作 137
5.3.1 序列幀動畫 137
5.3.2 使用腳本實現序列幀動畫 138
5.3.3 骨骼動畫 139
5.4 2D物理 141
5.5 捕魚游戲 144
5.5.1 游戲玩法 144
5.5.2 準備2D資源 145
5.5.3 創建魚 146
5.5.4 創建魚群生成器 148
5.5.5 創建子彈和大炮 150
5.5.6 物理碰撞 152
5.6 2D材質 153
5.6.1 修改Sprite顏色 153
5.6.2 自定義的黑白效果材質 153
5.7 小結 154
第6章 與Web服務器的交互 155
6.1 Web服務器簡介 156
6.2 在Windows上安裝部署Apache 156
6.2.1 安裝Apache 156
6.2.2 Apache常用命令 158
6.2.3 安裝MySQL 158
6.2.4 安裝PHP 160
6.2.5 安裝Redis 161
6.3 PHP開發環境 162
6.3.1 及時個PHP程序 162
6.3.2 調試PHP代碼 163
6.3.3 PHP基本語法 164
6.4 WWW基本應用 165
6.4.1 HTTP協議 166
6.4.2 GET請求 166
6.4.3 POST請求 168
6.4.4 上傳下載圖片 169
6.4.5 下載聲音文件 170
6.5 分數排行榜 171
6.5.1 創建數據庫 171
6.5.2 創建PHP腳本 172
6.5.3 上傳下載分數 174
6.5.4 使用Redis緩存數據 177
6.6 MD5驗證 179
6.7 Best HTTP 179
6.8 Linux環境部署 180
6.8.1 Linux管理工具 180
6.8.2 安裝Apache 181
6.8.3 安裝MySQL 182
6.8.4 安裝PHP 183
6.8.5 安裝Redis 185
6.9 小結 186
第7章 基于TCP/IP協議的聊天
實例 187
7.1 TCP/IP開發簡介 188
7.2 一個簡單的網絡程序 190
7.3 網絡引擎 192
7.3.1 數據包 193
7.3.2 邏輯處理 199
7.3.3 網絡功能 201
7.3.4 創建聊天協議 208
7.4 聊天客戶端 208
7.5 聊天服務器端 211
7.6 JSON.NET簡介 214
7.7 小結 215
第8章 HTML5(WebGL)游戲
移植 216
8.1 關于HTML5和WebGL 217
8.2 導出Unity游戲到WebGL平臺 217
8.2.1 導出WebGL游戲 217
8.2.2 設置WebGL模板 219
8.2.3 默認的index.html 219
8.2.4 文件訪問 220
8.3 自定義Loading頁面 221
8.4 編寫WebGL游戲插件 224
8.4.1 訪問Javascript示例一 224
8.4.2 訪問Javascript示例二 225
8.5 在網頁上保存游戲記錄 226
8.6 AssetBundle 227
8.6.1 創建AssetBundle資源 227
8.6.2 下載、實例化AssetBundle
資源 229
8.6.3 批量創建AssetBundle 230
8.7 小結 231
第 1 章Unity基礎本章主要介紹什么是Unity,如何安裝及其基本使用,編寫最簡單的腳本,了解Unity的功能特點等。1.1 初識游戲引擎和Unity隨著計算機軟硬件技術的發展,對游戲畫面和音效的要求越來越高,開發難度也變得越來越大,一些實力雄厚的公司將自己的技術商業化,作為游戲引擎供其他開發者使用,使開發者可以很大程度地忽略底層技術的復雜性,集中精力在游戲的邏輯和設計上,從而提高生產效率。一些比較知名的商業化游戲引擎包括Unreal、CryEngine、Quake、Source、Renderware、Game Byro、Torque Game Engine、Ogre 3D(僅是一個圖形引擎)等,這些引擎都曾經非?;钴S,有些也很昂貴。隨著市場的變化,一些缺乏競爭力的引擎已經逐漸退出了歷史舞臺,有興趣的讀者可以通過網絡了解一下這些引擎的歷史,幾乎也是一部3D游戲發展史。Unity(也稱Unity 3D)是一套包括圖形、聲音、物理等功能的游戲引擎,提供了一個強大的圖形界面編輯器,支持大部分主流3D軟件格式,對2D游戲也有的支持,支持C#、JavaScript等多種高級語言,使開發者無需了解底層復雜的技術,即可快速開發出高性能、高品質的游戲產品。實際上,在游戲引擎的家族中,Unity是“后起之秀”,但其發展迅速,目前已經成為世界上最活躍的游戲引擎。在Unity的早期版本,使用Unity開發的知名游戲僅限于一些手機平臺上的休閑游戲,如《Battle heart》等,隨著Unity的不斷升級和普及,現如今很多國內外的游戲大作都是由Unity開發的,比如《爐石傳說》等。Unity是跨平臺的游戲引擎,支持包括Windows、Mac、Linux、Web、iOS、Android、Windows Phone、Xbox、Play Station等大部分主流游戲平臺,還包括各種VR(虛擬現實)平臺,如圖1-1所示。 圖1-1 Unity支持的主流平臺在Unity早期的版本,可以將游戲導出為Flash或Unity自己的網頁格式放到網頁上,但隨著HTML5的發展,Unity在網頁游戲領域已經主要轉移到Web GL平臺上。筆者曾經開發的一些游戲,除了在移動平臺上,也到了網頁游戲平臺KONGREGATE上,有興趣的讀者,可訪問www.kongregate.com/,然后搜索游戲的英文名Wild Defense,就可以玩到筆者過去完成的一個塔防游戲,如圖1-2所示。Unity的主要開發環境是在Windows或Mac上面,因為在Windows上開發有很多優勢,可以在Windows平臺開發和測試,然后將游戲移植到其他平臺。本書中的大部分示例是在Windows上完成的。 圖1-2 網頁版野人大作戰在開始使用Unity之前不得不提一下Asset Store,它是Unity官方的在線商店,如圖1-3所示。Asset Store里面主要出售Unity的插件或美術資源。嚴格來說,這并不能算是Unity的一個功能,但它確實已經成為Unity的一個重要組成部分,很多插件在Unity開發中已經是必不可少的,在本書的示例中,也將使用到很多插件和美術資源,有一部分是免費的。 圖1-3 Asset Store的頁面截屏1.2 運行Unity本節主要介紹如何安裝和運行Unity示例工程以及安裝Visual Studio,創建一個Unity工程。1.2.1 Unity的版本Unity提供了專業版和個人版兩個版本,個人版是免費的。在功能上,這兩個版本在Unity5.0之后就已經沒有太大區別,專業版會提供一些額外的云端服務,不過如果公司的收入超過一定額度,則必須購買專業版。對于大部分學生或個人開發者來說,選擇個人版即可,使用個人版同樣可以商業化的游戲,這一點并不受版本的限制。1.2.2 下載并安裝Unity在Unity的官方網站 unity3d.com/get-unity中可以免費下載PC版和Mac版的Unity,這是完整的安裝包,包括針對所有平臺的全部功能。下載Unity后,運行安裝程序,可以僅選擇需要的內容安裝,其中Unity的編輯器是必須安裝的組件,Microsoft Visual Studio Tools for Unity是針對Visual Studio的插件,如果使用Visual Studio編寫腳本,強烈建議安裝這個插件。有一點需要注意,通過Unity下載主頁面鏈接下載的版本為Unity的“主要版本”,頁面上還有一個鏈接可以下載“補丁版本”(Patch releases),補丁版本通常是在主要版本的基礎上修復了各種Bug,在下載之前,建議閱讀版本說明,選擇適合自己的版本。1.2.3 在線激活Unity及時次運行Unity會提示選擇版本,如果沒有購買過專業版,選擇個人版(Personal)即可,但無論選擇哪個版本,都需要注冊一個Unity賬號進行登錄,這個賬號非常有用,除了用來登錄Unity,也可以用來在Asset Store中購買插件,同時還可以使用這個賬號在Asset Store中銷售自己開發的插件或美術素材供別人使用。1.2.4 運行示例工程啟動Unity,打開Unity的工程對話框,選擇[New]新建一個工程,輸入工程名稱和保存路徑,如圖1-4所示。標準的Unity工程主要包括三部分:Assets文件夾內包括所有的工程文件,這里是主要工作的地方;Library文件夾內是工程的數據庫文件(可以刪除,重新打開工程后會自動重建);ProjectSettings文件夾內保存工程的配置文件。
極力推薦,能學到很多技術。
公司培訓用,人手一本。大家都覺得挺好。
書很好,謝謝雜志之家,以后還會繼續買
免費在線讀了一點,覺得不錯就買了,后續如何,請待下次分解
很多超棒的新功能講解,例子也很贊,還有熱門插件,確是一本經典實戰型好書。推薦。
前兩版我都買過了,書非常不錯, 第三版又增加了新的內容,增加的內容也比較,都在封四上有詳細地介紹。