Unity 3D/2D手機游戲開發:從學習到產品(第3版) Unity 3D/2D手机游戏开发:从学习到产品(第3版)

金璽曾

  • 出版商: 清華大學
  • 出版日期: 2017-09-01
  • 定價: $588
  • 售價: 8.5$500
  • 語言: 簡體中文
  • 頁數: 444
  • 裝訂: 平裝
  • ISBN: 7302481652
  • ISBN-13: 9787302481652
  • 相關分類: 遊戲引擎 Game-engine
  • 下單後立即進貨 (約4週~6週)

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

商品描述

本書以實例教學為主線,循序漸進地介紹了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編輯器菜單欄的中英文對照表供讀者查閱。
本書提供了所有實例的源代碼與素材文件,供讀者上機練習使用,讀者可從網上下載本書資源文件。
本書適用於廣大游戲開發人員、游戲開發愛好者、軟件培訓機構以及電腦專業的學生等。

海報:

作者簡介

金璽曾,資深遊戲開發工程師,擁有10餘年遊戲開發經驗,3D塔防遊戲《野人大作戰》主要開發者。曾在上海盛大網絡、上海愛客士電腦軟件有限公司任開發經理,目前在個人創業公司從事VR及遊戲開發。

目錄大綱

第1章Unity基礎1 
1.1初識遊戲引擎和Unity2 
1.2運行Unity3 
1.2.1Unity的版本3 
1.2.2下載並安裝Unity4 
1.2.3在線激活Unity4 
1.2.4運行示例工程4 
1.3創建一個HelloWorld程序7 
1.3. 1安裝VisualStudio7 
1.3.2編寫腳本7 
1.3.3編譯輸出9 
1.4調試程序10 
1.4.1顯示Log10 
1.4.2在VisualStudio中設置斷點11 
1.4.3在MonoDevelop中設置斷點12 
1.5Unity腳本基礎12 
1.5 .1Script(腳本)組件12 
1.5.2腳本的執行順序12 
1.5.3腳本的序列化13 
1.5.4組件式的編程14 
1.5.5協程編程15 
1.6預置文件Prefab16 
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遊戲UI20
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創建子彈Prefab31 
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自動創建Prefab55 
2.15發布遊戲57 
2.16使用PoolBoss創建緩存池59 
2.17小結62 

第3章第一人稱射擊遊戲63 
3.1策劃64 
3.1.1遊戲介紹64
3.1.2UI界面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.5UI界面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.6UI界面92 
4.2地圖編輯器93 
4.2.1“格子”數據93 
4.2 .2在Inspector窗口添加自定義
UI控件95 
4.2.3創建一個自定義窗口98 
4.3遊戲場景99 
4.4製作UI100 
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.1Unity2D系統簡介132 
5.2創建Sprite132 
5.2.1使用SpriteEditor創建Sprite132 
5.2.2使用SpritePacker創建Sprite134 
5.2.3圖層排序135 
5.2.4Sprite邊框和重複顯示136 
5.3動畫製作137 
5.3.1序列幀動畫137 
5.3.2使用腳本實現序列幀動畫138 
5.3.3骨骼動畫139 
5.42D物理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.62D材質153 
5.6.1修改Sprite顏色153 
5.6.2自定義的黑白效果材質153 
5.7小結154 

第6章與Web服務器的交互155
6.1Web服務器簡介156 
6.2在Windows上安裝部署Apache156 
6.2.1安裝Apache156 
6.2.2Apache常用命令158 
6.2.3安裝MySQL158 
6.2.4安裝PHP160 
6.2.5安裝Redis161 
6.3PHP開發環境162 
6.3.1第一個PHP程序162 
6.3.2調試PHP代碼163 
6.3.3PHP基本語法164 
6.4WWW基本應用165 
6.4.1HTTP協議166 
6.4.2GET請求166 
6.4.3POST請求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.6MD5驗證179 
6.7BestHTTP179 
6.8Linux環境部署180 
6.8.1Linux管理工具180 
6.8 .2安裝Apache181 
6.8.3安裝MySQL182 
6.8.4安裝PHP183 
6.8.5安裝Redis185 
6.9小結186

第7章基於TCP/IP協議的聊天實例187 
7.1TCP/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.6JSON.NET簡介214 
7.7小結215 

第8章HTML5(WebGL)遊戲移植216 
8.1關於HTML5和WebGL217 
8.2導出Unity遊戲到WebGL平台217 
8.2.1導出WebGL遊戲217 
8.2.2設置WebGL模板219 
8.2.3默認的index.html219 
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.6AssetBundle227 
8.6.1創建AssetBundle資源227 
8.6.2下載、實例化AssetBundle 資源229
8.6.3批量創建AssetBundle230 
8.7小結231 

第9章iOS遊戲移植232 
9.1iOS簡介233 
9.2軟件安裝233 
9.3申請開發權限233 
9.4設置iOS開發環境233 
9.5測試iOS遊戲236 
9.6發布iOS遊戲237 
9.7對接iOS原生語言237 
9.7.1在Xcode中創建Objectiv—C 代碼237 
9.7.2在Unity中引用Objectiv—C 代碼240 
9.8內消費241 
9.9本地存儲位置241 
9.10小結241 

第10章Android遊戲移植242 
10.1Android簡介243 
10.2安裝AndroidSDK243 
10.3運行Android遊戲245 
10.3.1準備一部Android手機245 
10.3.2設置Android遊戲工程245 
10.3.3測試Android遊戲247 
10.3.4發布Android遊戲247 
10.4使用AndroidStudio249 
10.4.1AndroidStudio簡介250 
10.4.2配置AndroidStudio250 
10.4.3創建Helloworld程序251
10.5從Unity到AndroidStudio252 
10.5.1創建Unity工程253 
10.5.2創建AndroidStudio工程255 
10.5.3查看Log256 
10.5.4發布程序257 
10.6使用腳本編譯遊戲258 
10.6.1使用腳本導出Android工程258 
10.6.2使用腳本編譯Android工程261 
10.7獲得簽名證書的sha1值263 
10.8導入庫文件264 
10.9Plugins目錄266 
10.10代碼混淆266 
10.11百度地圖實例267 
10.11.1導入百度地圖SDK267 
10.11.2實現百度地圖控件268 
10.12觸屏操作271 
10.13小結276 

第11章Unity新GUI完全攻略277 
11.1Unity的GUI系統278 
11.2Canvas(畫布)278 
11.2.1創建Canvas279 
11.2.2設置Canvas279 
11.2.3Canvas的屏幕適應模式282 
11.2.4Canvas層級內UI控件的排序282 
11.2.5Canvas的隱藏和顯示283 
11.2.6查找UI層級下的子控件283 
11.3UI坐標對齊方式283
11.4Text(文字)284 
11.5自定義字體285 
11.5.1創建字體貼圖285 
11.5.2創建Shader287 
11.6Image(圖像)289 
11.6.1創建Image控件289 
11.6.2設置Alpha290 
11.6.3設置RaycastTarget290 
11.6.4設置UI圖像為Sliced類型291 
11.6.5設置UI圖像為Tiled類型292 
11.6.6設置UI圖像為Filled類型292 
11.6.7Mask(蒙版)293 
11.7Button(按鈕)控件294 
11.7.1創建按鈕294 
11.7.2設置按鈕狀態變化294 
11.7.3在編輯器中設置按鈕觸發事件295 
11.7.4在腳本中定義按鈕單擊事件296 
11.7.5判斷按壓按鈕事件297 
11.8Toggle(開關)控件297 
11.8.1創建Toggle控件297 
11.8.2Toggle組298 
11.8.3Toggle控件的腳本299 
11.9RawImage控件299 
11.10Slider(滑塊)控件301 
11.10.1創建Slider控件301 
11.10.2改變滑塊大小301
11.10.3使用腳本控制滑塊302 
11.11InputField(文本輸入)控件302 
11.12ScrollView(捲軸視圖)控件303 
11.13Dropdown(下拉列表)控件305 
11.14實用UI功能306 
11.14.1判斷是否單擊了UI306 
11.14.2拖動UI控件306 
11.14.3在UI前面顯示粒子特效308 
11.15使用插件DOTween製作動畫309 
11.15.1在編輯器中設置DOTween 動畫309 
11.15.2在腳本中設置DOTween 動畫310 
11.16使用插件EnhancedScroller優化捲軸視圖311 
11.16.1創建數據模型312 
11.16.2創建UI視圖控制腳本312 
11.16.3創建控制器312 
11.16.4創建捲軸視圖UI313 
11.17小結315 

第12章遊戲開發中的美術工作
流程316 
12.1Unity和藝術家317 
12.2視圖操作捕捉317 
12.3光照和渲染系統318 
12.3.1光源類型318 
12.3.2渲染管道319 
12.3.3質量設置320 
12.3.4實時陰影320
12.3.5環境光322 
12.3.6Fog(霧)323 
12.3.7直接照明與間接照明324 
12.3.8Lightmapping(光照貼圖)326 
12.3.9環境反射採樣331 
12.3.10光照採樣332 
12.4色彩空間335 
12.5物理材質337 
12.6攝像機340 
12.7地形342 
12.8粒子特效簡單教程345 
12.9物理設置簡單教程350 
12.10遊戲資源352 
12.10.1貼圖352 
12.10.2在3dsMax中創建法線貼圖353 
12.10.33dsMax靜態模型導出354 
12.10.43dsMax動畫導出356 
12.10.5Maya模型導出356 
12.11Unity兩足動畫系統357 
12.11.1修改3dsMax兩足動畫骨骼358 
12.11.2導入3dsMax兩足角色到
Unity359 
12.11.3導入角色動畫到Unity359 
12.11.4表情動畫360 
12.11 .5動畫控制器361 
12.12動畫插件Skele363 
12.13美術資源的優化367 
12.14小結367

第13章BehaviorDesigner—— 
行為樹AI368 
13.1行為樹和AI369 
13.1.1行為樹插件的安裝369 
13.1.2簡單的AI處理方式369 
13.1.3狀態機AI處理方式370 
13.1.4BehaviorDesigner的行為樹
AI處理方式371 
13.2行為樹任務372 
13.2.1任務返回值372 
13.2.2Action(動作)372 
13.2.3Composite(組合)372 
13.2.4Conditional(條件)374 
13.2.5Decorator(修飾)375 
13.3行為樹實例教程375 
13.3.1主角的行為樹376 
13.3.2遊蕩的敵人381 
13.3.3行為樹的交互382 
13.4行為樹系統擴展385 
13.4.1外部行為樹385 
13.4.2自定義任務386 
13.4.3自定義共享數據類型387 
13.4 .4在腳本中設置行為樹389 
13.4.5在腳本中發送事件389 
13.5優化389 
13.6小結390 

第14章玩玩PlayMaker391 
14.1關於PlayMaker392 
14.1.1優點和缺點392
14.1.2安裝392 
14.2PlayMaker的模塊和工作機制393 
14.2.1有限狀態機393 
14.2.2創建PlayMaker狀態機393 
14.2.3State(狀態)394 
14.2.4Event(事件)394 
14.2.5Action(動作)395 
14.2 .6變量396 
14.2.7發送事件397 
14.3自定義Action397 
14.4小結400 

附錄AC#語言401 
A.1C#基礎402 
A.1.1C#簡介402 
A.1.2運行控制台程序402 
A.1.3類型403 
A.1.4內置類型403 
A.1.5標識符404 
A.1.6語句和表達式404 
A.1.7變量和常量405 
A.1.8枚舉405 
A.1.9數學操作符405 
A.1.10關係操作符406 
A.1.11邏輯操作符406 
A.1.12操作符優先級407 
A.1.13方法407 
A.1.14條件分支語句408 
A.1.15循環語句409 
A.1.16三元操作符410 
A.1.17預處理410 
A.2面向對象編程411 
A. 2.1類411
A.2.2this關鍵字412 
A.2.3封裝412 
A.2.4繼承與多態414 
A.2.5靜態成員417 
A.2.6通過字段名稱序列化對象417 
A.3字符串418 
A.4數組和排序420 
A .4.1創建數組420 
A.4.2遍歷數組421 
A.4.3插入、刪除、查找421 
A.4.4排序422 
A.5I/O操作425 
A.5.1寫文件425 
A.5.2讀文件426 
A.5.3刪除文件427 
A.5.4讀寫bytes427 
A.6委託429 
A.6.1委託與事件429 
A.6.2泛型委託431 
A.6.3Action432 
A.7小結433 
附錄B特殊文件夾434 
附錄CUnity編輯器菜單中英文對照436