書籍簡介:
本書以實(shí)例教學(xué)為主線,循序漸進(jìn)地介紹了Unity在游戲開發(fā)方面的不同功能??壳罢?,由零開始,引導(dǎo)讀者熟悉Unity編輯器的各個功能模塊和特性。第2~4章是3個不同特色的3D游戲?qū)嵗棺x者對Unity游戲開發(fā)有一個較全面的認(rèn)識。第5章是一個2D游戲?qū)嵗喾矫娴亟榻B了Unity在2D游戲方面的應(yīng)用。第6章和第7章,重點(diǎn)介紹了Unity在網(wǎng)絡(luò)方面的應(yīng)用。第8~10章介紹了如何將Unity游戲移植到網(wǎng)頁、iOS和Android平臺??壳?章詳細(xì)介紹了Unity的新GUI系統(tǒng)??壳?章是關(guān)于創(chuàng)建Unity游戲美術(shù)資源的工作流程??壳?章和靠前4章分別介紹了行為樹和PlayMaker兩款插件,適合各類游戲開發(fā)者。另外,本書很后附有C#語言的快速教程,幫助缺乏程序開發(fā)基礎(chǔ)的讀者快速入門,同時也包括Unity編輯器菜單欄的中英文對照表供讀者查閱。 本書提供了所有實(shí)例的源代碼與素材文件,供讀者上機(jī)練習(xí)使用,讀者可從網(wǎng)上下載本書資源文件。 本書適用于廣大游戲開發(fā)人員、游戲開發(fā)愛好者、軟件培訓(xùn)機(jī)構(gòu)以及計(jì)算機(jī)專業(yè)的學(xué)生等。
作者簡介:
金璽曾
資歷游戲開發(fā)工程師,擁有10余年游戲開發(fā)經(jīng)驗(yàn),3D塔防游戲《野人大作戰(zhàn)》主要開發(fā)者。曾在上海盛大網(wǎng)絡(luò)、上海愛客士電腦軟件有限公司任開發(fā)經(jīng)理,目前在個人創(chuàng)業(yè)公司從事VR及游戲開發(fā)。
出版時間:
2017年09月
章節(jié)目錄:
前言
第1章 Unity基礎(chǔ)
1.1 初識游戲引擎和Unity
1.2 運(yùn)行Unity
1.2.1 Unity的版本
1.2.2 下載并安裝Unity
1.2.3 在線激活Unity
1.2.4 運(yùn)行示例工程
1.3 創(chuàng)建一個Hello World程序
1.3.1 安裝Visual Studio
1.3.2 編寫腳本
1.3.3 編譯輸出
1.4 調(diào)試程序
1.4.1 顯示Log
1.4.2 在Visual Studio中設(shè)置斷點(diǎn)
1.4.3 在MonoDevelop中設(shè)置斷點(diǎn)
1.5 Unity腳本基礎(chǔ)
1.5.1 Script(腳本)組件
1.5.2 腳本的執(zhí)行順序
1.5.3 腳本的序列化
1.5.4 組件式的編程
1.5.5 協(xié)程編程
1.6 預(yù)置文件Prefab
1.7 實(shí)例化
1.8 讀取資源
1.9 保存工程
1.10 小結(jié)
第2章 太空射擊游戲
2.1 游戲介紹
2.1.1 游戲操作
2.1.2 主角和敵人
2.1.3 游戲UI
2.2 導(dǎo)入美術(shù)資源
2.3 創(chuàng)建場景
2.3.1 創(chuàng)建火星背景和星空動畫
2.3.2 設(shè)置攝像機(jī)和燈光
2.4 創(chuàng)建主角
2.4.1 創(chuàng)建腳本
2.4.2 控制飛船移動
2.4.3 創(chuàng)建子彈
2.4.4 創(chuàng)建子彈Prefab
2.4.5 發(fā)射子彈
2.5 創(chuàng)建敵人
2.6 物理碰撞
2.6.1 添加碰撞體
2.6.2 觸發(fā)碰撞
2.7 高級敵人
2.7.1 創(chuàng)建敵人
2.7.2 發(fā)射子彈
2.8 聲音與特效
2.9 敵人生成器
2.10 游戲UI和戰(zhàn)斗管理
2.10.1 創(chuàng)建顯示得分的UI界面
2.10.2 創(chuàng)建顯示游戲失敗的UI界面
2.10.3 編寫腳本
2.11 關(guān)卡跳轉(zhuǎn)
2.12 用鼠標(biāo)控制主角
2.13 精確的碰撞檢測
2.14 自動創(chuàng)建Prefab
2.15 發(fā)布游戲
2.16 使用Pool Boss創(chuàng)建緩存池
2.17 小結(jié)
第3章 第一人稱射擊游戲
3.1 策劃
3.1.1 游戲介紹
3.1.2 UI界面
3.1.3 主角
3.1.4 敵人
3.2 游戲場景
3.3 主角
3.3.1 角色控制器
3.3.2 攝像機(jī)
3.3.3 武器
3.4 敵人
3.4.1 尋路
3.4.2 設(shè)置動畫
3.4.3 行為
3.5 UI界面
3.6 交互
3.6.1 主角的射擊
3.6.2 敵人的進(jìn)攻與死亡
3.7 出生點(diǎn)
3.8 小地圖
3.9 小結(jié)
第4章 塔防游戲
4.1 策劃
4.1.1 場景
4.1.2 攝像機(jī)
4.1.3 勝負(fù)判定
4.1.4 敵人
4.1.5 防守單位
4.1.6 UI界面
4.2 地圖編輯器
4.2.1 “格子”數(shù)據(jù)
4.2.2 在Inspector窗口添加自定義UI控件
4.2.3 創(chuàng)建一個自定義窗口
4.3 游戲場景
4.4 制作UI
4.5 創(chuàng)建游戲管理器
4.6 攝像機(jī)
4.7 路點(diǎn)
4.8 敵人
4.9 敵人生成器
4.9.1 創(chuàng)建敵人生成器
4.9.2 遍歷敵人
4.10 防守單位
4.11 生命條
4.12 小結(jié)
第5章 2D游戲
5.1 Unity 2D系統(tǒng)簡介
5.2 創(chuàng)建Sprite
5.2.1 使用SpriteEditor創(chuàng)建Sprite
5.2.2 使用SpritePacker創(chuàng)建Sprite
5.2.3 圖層排序
5.2.4 Sprite邊框和重復(fù)顯示
5.3 動畫制作
5.3.1 序列幀動畫
5.3.2 使用腳本實(shí)現(xiàn)序列幀動畫
5.3.3 骨骼動畫
5.4 2D物理
5.5 捕魚游戲
5.5.1 游戲玩法
5.5.2 準(zhǔn)備2D資源
5.5.3 創(chuàng)建魚
5.5.4 創(chuàng)建魚群生成器
5.5.5 創(chuàng)建子彈和大炮
5.5.6 物理碰撞
5.6 2D材質(zhì)
5.6.1 修改Sprite顏色
5.6.2 自定義的黑白效果材質(zhì)
5.7 小結(jié)
第6章 與Web服務(wù)器的交互
6.1 Web服務(wù)器簡介
6.2 在Windows上安裝部署Apache
6.2.1 安裝Apache
6.2.2 Apache常用命令
6.2.3 安裝MySQL
6.2.4 安裝PHP
6.2.5 安裝Redis
6.3 PHP開發(fā)環(huán)境
6.3.1 第一個PHP程序
6.3.2 調(diào)試PHP代碼
6.3.3 PHP基本語法
6.4 WWW基本應(yīng)用
6.4.1 HTTP協(xié)議
6.4.2 GET請求
6.4.3 POST請求
6.4.4 上傳下載圖片
6.4.5 下載聲音文件
6.5 分?jǐn)?shù)排行榜
6.5.1 創(chuàng)建數(shù)據(jù)庫
6.5.2 創(chuàng)建PHP腳本
6.5.3 上傳下載分?jǐn)?shù)
6.5.4 使用Redis緩存數(shù)據(jù)
6.6 MD5驗(yàn)證
6.7 Best HTTP
6.8 Linux環(huán)境部署
6.8.1 Linux管理工具
6.8.2 安裝Apache
6.8.3 安裝MySQL
6.8.4 安裝PHP
6.8.5 安裝Redis
6.9 小結(jié)
第7章 基于TCP/IP協(xié)議的聊天實(shí)例
7.1 TCP/IP開發(fā)簡介
7.2 一個簡單的網(wǎng)絡(luò)程序
7.3 網(wǎng)絡(luò)引擎
7.3.1 數(shù)據(jù)包
7.3.2 邏輯處理
7.3.3 網(wǎng)絡(luò)功能
7.3.4 創(chuàng)建聊天協(xié)議
7.4 聊天客戶端
7.5 聊天服務(wù)器端
7.6 JSON.NET簡介
7.7 小結(jié)
第8章 HTML5(WebGL)游戲移植
8.1 關(guān)于HTML5和WebGL
8.2 導(dǎo)出Unity游戲到WebGL平臺
8.2.1 導(dǎo)出WebGL游戲
8.2.2 設(shè)置WebGL模板
8.2.3 默認(rèn)的index.html
8.2.4 文件訪問
8.3 自定義Loading頁面
8.4 編寫WebGL游戲插件
8.4.1 訪問Javascript示例一
8.4.2 訪問Javascript示例二
8.5 在網(wǎng)頁上保存游戲記錄
8.6 AssetBundle
8.6.1 創(chuàng)建AssetBundle資源
8.6.2 下載、實(shí)例化AssetBundle資源
8.6.3 批量創(chuàng)建AssetBundle
8.7 小結(jié)
第9章 iOS游戲移植
9.1 iOS簡介
9.2 軟件安裝
9.3 申請開發(fā)權(quán)限
9.4 設(shè)置iOS開發(fā)環(huán)境
9.5 測試iOS游戲
9.6 發(fā)布iOS游戲
9.7 對接iOS原生語言
9.7.1 在Xcode中創(chuàng)建Objectiv-C代碼
9.7.2 在Unity中引用Objectiv-C代碼
9.8 內(nèi)消費(fèi)
9.9 本地存儲位置
9.10 小結(jié)
第10章 Android游戲移植
10.1 Android簡介
10.2 安裝Android SDK
10.3 運(yùn)行Android游戲
10.3.1 準(zhǔn)備一部Android手機(jī)
10.3.2 設(shè)置Android游戲工程
10.3.3 測試Android游戲
10.3.4 發(fā)布Android游戲
10.4 使用Android Studio
10.4.1 Android Studio簡介
10.4.2 配置Android Studio
10.4.3 創(chuàng)建Hello world程序
10.5 從Unity到Android Studio
10.5.1 創(chuàng)建Unity工程
10.5.2 創(chuàng)建Android Studio工程
10.5.3 查看Log
10.5.4 發(fā)布程序
10.6 使用腳本編譯游戲
10.6.1 使用腳本導(dǎo)出Android工程
10.6.2 使用腳本編譯Android工程
10.7 獲得簽名證書的sha1值
10.8 導(dǎo)入庫文件
10.9 Plugins目錄
10.10 代碼混淆
10.11 百度地圖實(shí)例
10.11.1 導(dǎo)入百度地圖SDK
10.11.2 實(shí)現(xiàn)百度地圖控件
10.12 觸屏操作
10.13 小結(jié)
第11章 Unity新GUI完全攻略
11.1 Unity的GUI系統(tǒng)
11.2 Canvas(畫布)
11.2.1 創(chuàng)建Canvas
11.2.2 設(shè)置Canvas
11.2.3 Canvas的屏幕適應(yīng)模式
11.2.4 Canvas層級內(nèi)UI控件的排序
11.2.5 Canvas的隱藏和顯示
11.2.6 查找UI層級下的子控件
11.3 UI坐標(biāo)對齊方式
11.4 Text(文字)
11.5 自定義字體
11.5.1 創(chuàng)建字體貼圖
11.5.2 創(chuàng)建Shader
11.6 Image(圖像)
11.6.1 創(chuàng)建Image控件
11.6.2 設(shè)置Alpha
11.6.3 設(shè)置Raycast Target
11.6.4 設(shè)置UI圖像為Sliced類型
11.6.5 設(shè)置UI圖像為Tiled類型
11.6.6 設(shè)置UI圖像為Filled類型
11.6.7 Mask(蒙版)
11.7 Button(按鈕)控件
11.7.1 創(chuàng)建按鈕
11.7.2 設(shè)置按鈕狀態(tài)變化
11.7.3 在編輯器中設(shè)置按鈕觸發(fā)事件
11.7.4 在腳本中定義按鈕單擊事件
11.7.5 判斷按壓按鈕事件
11.8 Toggle(開關(guān))控件
11.8.1 創(chuàng)建Toggle控件
11.8.2 Toggle組
11.8.3 Toggle控件的腳本
11.9 Raw Image控件
11.10 Slider(滑塊)控件
11.10.1 創(chuàng)建Slider控件
11.10.2 改變滑塊大小
11.10.3 使用腳本控制滑塊
11.11 Input Field(文本輸入)控件
11.12 Scroll View(卷軸視圖)控件
11.13 Dropdown(下拉列表)控件
11.14 實(shí)用UI功能
11.14.1 判斷是否單擊了UI
11.14.2 拖動UI控件
11.14.3 在UI前面顯示粒子特效
11.15 使用插件DOTween制作動畫
11.15.1 在編輯器中設(shè)置DOTween動畫
11.15.2 在腳本中設(shè)置DOTween動畫
11.16 使用插件EnhancedScroller優(yōu)化卷軸視圖
11.16.1 創(chuàng)建數(shù)據(jù)模型
11.16.2 創(chuàng)建UI視圖控制腳本
11.16.3 創(chuàng)建控制器
11.16.4 創(chuàng)建卷軸視圖UI
11.17 小結(jié)
第12章 游戲開發(fā)中的美術(shù)工作流程
12.1 Unity和藝術(shù)家
12.2 視圖操作捕捉
12.3 光照和渲染系統(tǒng)
12.3.1 光源類型
12.3.2 渲染管道
12.3.3 質(zhì)量設(shè)置
12.3.4 實(shí)時陰影
12.3.5 環(huán)境光
12.3.6 Fog(霧)
12.3.7 直接照明與間接照明
12.3.8 Lightmapping(光照貼圖)
12.3.9 環(huán)境反射采樣
12.3.10 光照采樣
12.4 色彩空間
12.5 物理材質(zhì)
12.6 攝像機(jī)
12.7 地形
12.8 粒子特效簡單教程
12.9 物理設(shè)置簡單教程
12.10 游戲資源
12.10.1 貼圖
12.10.2 在3ds Max中創(chuàng)建法線貼圖
12.10.3 3ds Max靜態(tài)模型導(dǎo)出
12.10.4 3ds Max動畫導(dǎo)出
12.10.5 Maya模型導(dǎo)出
12.11 Unity兩足動畫系統(tǒng)
12.11.1 修改3ds Max兩足動畫骨骼
12.11.2 導(dǎo)入3ds Max兩足角色到Unity
12.11.3 導(dǎo)入角色動畫到Unity
12.11.4 表情動畫
12.11.5 動畫控制器
12.12 動畫插件Skele
12.13 美術(shù)資源的優(yōu)化
12.14 小結(jié)
第13章 Behavior Designer——行為樹AI
13.1 行為樹和AI
13.1.1 行為樹插件的安裝
13.1.2 簡單的AI處理方式
13.1.3 狀態(tài)機(jī)AI處理方式
13.1.4 Behavior Designer的行為樹AI處理方式
13.2 行為樹任務(wù)
13.2.1 任務(wù)返回值
13.2.2 Action(動作)
13.2.3 Composite(組合)
13.2.4 Conditional(條件)
13.2.5 Decorator(修飾)
13.3 行為樹實(shí)例教程
13.3.1 主角的行為樹
13.3.2 游蕩的敵人
13.3.3 行為樹的交互
13.4 行為樹系統(tǒng)擴(kuò)展
13.4.1 外部行為樹
13.4.2 自定義任務(wù)
13.4.3 自定義共享數(shù)據(jù)類型
13.4.4 在腳本中設(shè)置行為樹
13.4.5 在腳本中發(fā)送事件
13.5 優(yōu)化
13.6 小結(jié)
第14章 玩玩PlayMaker
14.1 關(guān)于PlayMaker
14.1.1 優(yōu)點(diǎn)和缺點(diǎn)
14.1.2 安裝
14.2 PlayMaker的模塊和工作機(jī)制
14.2.1 有限狀態(tài)機(jī)
14.2.2 創(chuàng)建PlayMaker狀態(tài)機(jī)
14.2.3 State(狀態(tài))
14.2.4 Event(事件)
14.2.5 Action(動作)
14.2.6 變量
14.2.7 發(fā)送事件
14.3 自定義Action
14.4 小結(jié)
附錄A C#語言
A.1 C#基礎(chǔ)
A.1.1 C#簡介
A.1.2 運(yùn)行控制臺程序
A.1.3 類型
A.1.4 內(nèi)置類型
A.1.5 標(biāo)識符
A.1.6 語句和表達(dá)式
A.1.7 變量和常量
A.1.8 枚舉
A.1.9 數(shù)學(xué)操作符
A.1.10 關(guān)系操作符
A.1.11 邏輯操作符
A.1.12 操作符優(yōu)先級
A.1.13 方法
A.1.14 條件分支語句
A.1.15 循環(huán)語句
A.1.16 三元操作符
A.1.17 預(yù)處理
A.2 面向?qū)ο缶幊?br> A.2.1 類
A.2.2 this關(guān)鍵字
A.2.3 封裝
A.2.4 繼承與多態(tài)
A.2.5 靜態(tài)成員
A.2.6 通過字段名稱序列化對象
A.3 字符串
A.4 數(shù)組和排序
A.4.1 創(chuàng)建數(shù)組
A.4.2 遍歷數(shù)組
A.4.3 插入、刪除、查找
A.4.4 排序
A.5 I/O操作
A.5.1 寫文件
A.5.2 讀文件
A.5.3 刪除文件
A.5.4 讀寫bytes
A.6 委托
A.6.1 委托與事件
A.6.2 泛型委托
A.6.3 Action
A.7 小結(jié)
附錄B 特殊文件夾
附錄C Unity編輯器菜單中英文對照
封面圖: