Unity 5.X 3D遊戲開發技術詳解與典型案例 Unity 5.X 3D游戏开发技术详解与典型案例(附光盘)

吳亞峰, 索依娜

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

商品描述

 

<內容簡介>

本書對Unity 3D集成開發環境界面、腳本的編寫和眾多高級特效的實現進行了詳細介紹,內容深入淺出,是一本適合不同需求、不同開發水平讀者的技術寶典。
全書共分16章。第1章主要介紹了Unity 3D的誕生、特點、開發環境的搭建及運行機制;第2章對Unity 3D集成開發環境進行了詳細介紹;第3章介紹了Unity 3D中腳本的編寫;第4章主要對Unity 3D開發過程中經常使用的組件及對象進行了詳細介紹;第5章介紹了Unity遊戲開發中非常流行的第三方UI界面開發組件庫—NGUI的基礎知識;第6章介紹了Unity開發平臺的完整的物理引擎體系;第7章介紹了Unity 3D中的著色器和著色器語言—ShaderLab;第8章介紹了天空盒、虛擬按鈕與搖桿、聲音、水特效、3D拾取、重力加速度傳感器及霧特效等開發常用的技術;第9章介紹了Unity中經常使用的光影效果,主要包括各種光源、光照烘焙、法線貼圖、鏡面特效、波動水面真實效果等技術;第10章介紹了Unity中模型的網格概念及新舊動畫系統;第11章介紹了Unity自帶的地形引擎、拖尾渲染及導航網格和尋路系統等知識;第12章介紹了AssetBundle更新資源包的使用;第13章介紹了Unity中的多線程技術與網絡開發;第14章介紹了Unity 2D遊戲開發工具;第15章介紹了Unity 3D提供的Profiler工具的使用方法,及斷點調試的兩種方式;第16章介紹了完整的大型3D遊戲案例—指間足球。
為了便於讀者學習,本書還附贈光盤,包含了書中所有案例的完整源代碼,能夠幫助讀者快速掌握開發技術。

 

<章節目錄>

第1章Unity基礎以及開發環境的搭建
1.1Unity基礎知識概覽
1.1.1初識Unity
1.1.2Unity的誕生及發展
1.1.3Unity廣闊的市場前景
1.1.4獨具特色的Unity
1.2Unity開發環境的搭建
1.2 .1Windows平臺下Unity的下載及安裝
1.2.2MacOS平臺下Unity的下載及安裝
1.2.3目標平臺的SDK與Unity集成
1.3第一個Unity程序
1.4本書案例的導入及運行
1.5本章小結
第2章Unity集成開發環境詳解
2.1Unity集成開發環境的整體佈局
2.1.1Unity集成開發環境的整體佈局
2.1.2菜單欄
2.1.3工具欄
2.1.4場景設計面板
2.1.5遊戲預覽面板
2.1.6遊戲組成對象列表
2.1.7項目資源列表
2.1.8屬性查看器
2.1.9狀態欄與控制台
2.1.10動畫視圖
2.1.11動畫控制器編輯視圖
2.2菜單欄
2.2.1文件(File)
2.2.2編輯(Edit)
2.2.3資源(Assets)
2.2.4遊戲對象(GameObject)
2.2.5組件(Component)
2.2.6窗口(Window)
2.2.7幫助(Help)
2.3本章小結
第3章Unity腳本程序開發
3.1Unity腳本概述
3.2Unity中C#腳本的註意事項
3.2.1繼承自MonoBehaviour類
3.2.2類名字必須匹配文件名
​​3.2.3使用Awake或Start方法初始化
3.2.4Unity腳本中協同程序有不同的語法規則
3.2.5只有滿足特定情況變量才能顯示在屬性查看器中
3.2.6盡量避免使用構造函數
3.2.7調試
3.3Unity腳本的基礎語法
3.3.1常用操作
3.3.2記錄時間
3.3.3訪問遊戲對象組件
3.3.4訪問其他遊戲對象
3.3.5向量
3.3.6成員變量和靜態成員變量
3.3.7實例化遊戲對象
3.3.8協同程序和中斷
3.3.9一些重要的類
3.3.10性能優化
3.3.11腳本編譯
3.4綜合案例
3.4 .1案例策劃及準備工作
3.4.2創建項目及場景搭建
3.4.3飛機控制腳本實現
3.4.4攝像機跟隨腳本實現
3.5本章小結
第4章Unity3D圖形用戶界面基礎
4.1GUI圖形用戶界面系統
4.1.1圖形用戶界面組件的變量
4.1.2圖形用戶界面中的常用控件
4.1.3圖形用戶界面控件綜合案例
4.2UGUI圖形用戶界面系統
4.2.1創建UGUI控件
4.2.2Canvas畫布
4.2.3EventSystem
4.2.4RectTransform組件
4.2.5Panel控件
4.2.6Button控件
4.2.7Text控件
4.2.8Image控件
4.2.9RawImage控件
4.2.10Slider控件
4.2.11Scrollbar控件
4.2.12Toggle控件
4.2.13InputField控件
4.2.14UGUI佈局管理的使用及相關組件介紹
4.2.15UGUI中不規則形狀的按鈕的碰撞檢測
4.2.16ScrollView的製作
4.2.17UGUI綜合案例—音樂播放器的UI搭建
4.3預製件(prefab)資源的應用
4.3.1預製件(prefab)資源的創建
4.3.2通過prefab資源進而實例化對象
4.4常用的輸入對象
4.4.1Touch輸入對象
4.4.2Input輸入對象
4.5與銷毀相關的方法
4.5.1Object.Destroy方法
4.5.2NetWork.Destroy方法
4.5.3MonoBehaviour.OnDestroy方法
4.6本章小結
第5章Unity3D第三方2D組件庫—NGUI
5.1初識NGUI
5.1.1NGUI背景概述
5.1.2NGUI的導入
5.1.3UI層簡介
5.2NGUI菜單介紹
5.2.1“Selection”菜單
5.2.2“Create”菜單
5.2.3“Attach”菜單
5.2.4“Tween”菜單
5.2.5“Open”菜單
5.2.6其他菜單
5.3控件工具的使用
5.3.1圖片精靈—Sprite
5.3.2文本標籤—Label
5.3.3圖片精靈—Texture
5.3.4組件容器—Widget
5.3.5錨點—Anchor
5.3.6面板—Panel
5.3.7滾動視圖—ScrollView
5.3.8網格—Grid
5.3.9表格—Table
5.4UI庫中默認組件的製作
5.4.1按鈕—ColoredButton
5.4 .2複選框—ColoredCheckbox
5.4.3水平滾動條—ColoredHorizontalScrollBar
5.4.4滑塊—ColoredSlider
5.4.5彈出列表—ColoredPopupList
5.4.6輸入框—Control—SimpleInputField
5.5雜項
5.5.1Atlas圖集製作
5.5.2中文字體製作
5.5.3動畫曲線編輯
5.6一個NGUI的綜合案例
5.6.1界面一製作
5.6.2界面二製作
5.6.3界面三製作
5.7本章小結
第6章物理引擎
6.1剛體
6.1.1剛體特性
6.1.2物理管理器
6.2碰撞器
6.2.1碰撞器的添加
6.2.2碰撞過濾
6.2.3物理材質
6.3粒子系統
6.3.1粒子系統的簡介
6.3.2粒子系統的特性
6.3.3粒子系統的綜合使用
6.4關節
6.4.1鉸鏈關節的特性
6.4.2鉸鏈關節的創建
6.4.3固定關節的特性
6.4.4固定關節的創建
6.4.5彈簧關節的特性
6.4.6彈簧關節的創建
6.4.7角色關節的特性
6.4 .8角色關節的創建
6.4.9可配置關節的特性
6.4.10可配置關節的創建
6.4.11關節綜合案例—機械手
6.5交通工具
6.5.1車輪碰撞器添加
6.5.2車輪碰撞器的特性
6.5. 3車輪碰撞器的應用
6.6布料
6.6.1蒙皮網格
6.6.2布料特性
6.6.3布料的簡單案例
6.7力場
6.7.1力場組件特性
6.7.2力場綜合案例
6.8物理引擎在動畫系統中的使用
6.8.1場景的搭建
6.8.2腳本的開發
6.8.3運行效果
6.9物理引擎綜合案例
6.9.1場景的搭建
6.9.2界面的搭建
6.9.3腳本的開發
6.9.4案例開發總結
6.10本章小結
第7章著色器—Shader
7.1初識著色器
7.1.1著色器概述
7.1.2ShaderLab語法基礎
7.1.3著色器中涉及的各種空間
概念
7.2著色器的3種形態
7.2.1固定管線著色器
7.2.2頂點片元著色器
7.2.3錶面著色器
7.3錶面著色器
7.3.1錶面著色器基礎知識
7.3.2通過錶面著色器實現體積霧
7.4渲染通道的通用指令
7.4.1設置LOD數值
7.4 .2渲染隊列
7.4.3混合模式介紹
7.4.4Alpha測試
7.4.5深度測試
7.4.6通道遮罩
7.4.7面的剔除操作
7.4.8抓屏操作
7.5著色器的組織和優化
7.5.1著色器的組織和復用
7.5.2移動平臺上的優化
7.6綜合案例
7.6.1案例策劃及準備工作
7.6.2創建項目及場景搭建
7.6.3著色器及相關腳本的開發
7.6.4結點對象的創建及相關腳本的開發
7.7本章小結
第8章3D遊戲開發的常用技術
8.1天空盒的應用
8.1.1Unity天空盒資源
8.1.2開發實際需要的天空盒
8.23D拾取技術
8.3視頻貼圖
8.3.1基礎知識
8.3 .2視頻貼圖案例
8.4動態字體
8.5重力加速度傳感器
8.6PlayerPrefs類
8.7虛擬按鈕與搖桿的使用
8.7.1下載並導入標準資源包
8.7.2虛擬按鈕和搖桿使用的案例
8.8聲音
8.8.1聲音類型
8.8.2音頻管理器—AudioManager
8.8.3音頻監聽器—AudioListener
8.8.4音頻源—AudioSource
8.8.5音頻效果—AudioEffects
8.8.6音頻混響區—AudioReverbZones
8.8.7簡單的聲音控制案例
8.8.8混音器—AudioMixer
8.9水特效
8.9.1基礎知識
8.9.2案例
8.10霧特效
8.10.1案例效果與基本原理
8.10.2場景搭建及開發步驟
8.11本章小結
第9章光影效果的使用
9.1光源
9.1. 1點光源(PointLight)
9.1.2定向光源(DirectionalLight)
9.1.3聚光燈光源(SpotLight)
9.1.4區域光光源(AreaLight)
9.1.5發光材質
9.2光照貼圖的烘焙與使用
9.2.1對場景進行光照烘焙
9.2.2光照烘焙參數詳解
9.3法線貼圖
9.3.1在Unity中使用法線貼圖
9.3.2如何在3DMax中製作法線貼圖
9.4鏡子的開發
9.4.1場景的搭建
9.4.2鏡面著色器的開發
9.4.3C#腳本的開發
9.5真實的水面效果開發
9.5.1基本原理
9.5.2場景的搭建
9.5.3C#腳本的開發
9.5.4鏡面著色器的開發
9.6Unity3D光照系統中的高級功能
9.6. 1渲染路徑與顏色空間
9.6.2Cookies
9.6.3Flare鏡頭光暈
9.6.4CullingMask光照過濾
9.6.5陰影的設置
9.6.6LightProbes光探頭
9.7Unity3D5.0中新增的光照功能詳解
9.7.1基於物理學的標準著色器
9.7.2反射探頭(ReflectionProbe)
9.7.3全局光照技術詳解
第10章模型與動畫
10.13D模型導入
10.1.1主流3D建模軟件的介紹
10.1.2Unity與建模軟件單位的比例關係
10.1. 3將3D模型導入Unity
10.2網格Mesh
10.2.1網格過濾器(MeshFilter)
10.2.2Mesh屬性和方法介紹
10.2.3Mesh的使用
10.2.4使用Mesh使物體變形的一個簡單案例
10.3第三方切割工具庫ShatterToolkit的使用
10.3.1ShatterToolkit簡介
10.3.2使用ShatterToolkit的一個簡單案例
10.4舊版動畫系統
10.4.1導入角色動畫資源
10.4.2動畫控制器(Animation)
10.4.3動畫腳本
10.4.4使用舊版動畫系統的簡單案例
10.5Mecanim動畫 ​​系統
10.5.1角色動畫的配置
10.5.2動畫控制器的創建
10.5.3動畫控制器的配置
10.5.4角色動畫的重定向
10.5.5角色動畫的混合—創建動畫混合樹
10.5. 6角色動畫的混合—混合類型介紹
10.5.7Mecanim中的代碼控制
10.5.8案例分析
10.6本章小結
第11章地形與尋路技術
11.1地形引擎
11.1.1地形的創建
11.1.2灰度圖的使用
11.2拖尾渲染器—TrailRenderer
11.2.1背景介紹
11.2.2拖尾渲染器屬性介紹
11.2.3拖尾渲染器的使用
11.2.4產生汽車輪胎拖痕案例
11.2.5產生汽車剎車痕案例
11.3自動尋路技術
11.3.1基礎知識
11.3.2一個簡單的案例
11.4本章小結
第12章遊戲資源更新
12.1AssetBundle資源包
12.1.1AssetBundle簡介
12.1.2創建AssetBundle
12.1.3AssetBundle的下載
12.1.4AssetBundle的加載和卸載
12.1.5關於AssetBundle
12.1.6本節小結
12.2Lua熱更新
12.2.1熱更新的基本介紹
12.2.2Lua的基本情況介紹
12.2.3SimpleFramework框架介紹
12.2.4熱更新案例
12.2.5本節小結
12.3本章小結
第13章多線程技術與網絡開發
13.1多線程技術
13.1.1基本知識
13.1.2多線程技術用於大量計算
13.1.3多線程技術在網絡開發中的應用
13.2WWW類
13.2.1用WWW類訪問網絡資源
13.2 .2場景搭建
13.2.3C#腳本的編寫
13.3網絡類—Network
13.3.1靜態變量
13.3.2靜態方法
13.3.3消息發送
13.4基於UnityNetwork開發網絡遊戲
13.4.1非授權服務器和授權服務器
13.4.2NetworkView網絡視圖組件
13.4.3案例的效果預覽
13.4.4案例場景的搭建
13.4.5項目主體腳本的開發
13.4.6服務器和客戶端的發布
13.5基於Socket開發Unity網絡遊戲
13.5.1網絡遊戲架構簡介
13.5.2案例的效果預覽與資源準備
13.5.3案例場景的搭建
13.5.4服務器端的開發
13.5.5客戶端的開發
13.6本章小結
第14章Unity2D遊戲開發
14.1Unity2D基礎介紹
14.1.1Unity2D項目的創建
14.1.2Unity2D功能簡要介紹
14.1.3Unity2D遊戲開發工作流程的簡要介紹
14.2Unity2D核心功能對象—Sprite
14.2.1Sprite對象的創建和基本用法
14.2.2換幀動畫的製作
14.2.3製作換幀動畫的具體步驟
14.3Unity2D中的物理引擎
14.3.12D剛體
14.3.22D碰撞器
14.3.32D關節
14.3.4使用2D物理引擎製作撞冰塊案例
14.4一個完整的2D遊戲案例
14.4.1遊戲玩法以及功能概述
14.4.2遊戲的策劃及準備工作
14.4 .3遊戲的架構
14.4.4菜單場景
14.4.5遊戲場景
14.5本章小結
第15章常用性能優化技術
15.1程序性能的分析
15.1.1Profiler使用方法
15.1.2Profiler的參數說明
15.2代碼的斷點調試
15.2.1通過MonoDevelop調試
15.2.2MicrosoftVisualStudioToolsforUnity的使用
15.3優化事項
15.3.1遮擋剔除技術
15.3.2批處理技術
15.3.3移動平臺的優化技巧
15.4本章小結
第16章綜合案例—指間足球
16.1背景以及功能概述
16.1. 1遊戲背景概述
16.1.2遊戲功能簡介
16.2遊戲的策劃及準備工作
16.2.1遊戲的策劃
16.2.2使用Unity開發遊戲前的準備工作
16.3遊戲的架構
16.3.1各個場景的簡要介紹
16.3.2遊戲架構簡介
16.4遊戲主場景
16.4.1場景搭建
16.4.2主攝像機設置及腳本開發
16.4.3守門員遊戲對象相關腳本開發
16.4.4檢測板遊戲對象相關腳本開發
16.4.5提示板遊戲對象相關腳本的開發
16.4.6門框遊戲對象相關腳本的開發
16.4.7其他腳本的開發
16.5遊戲界面的開發
16.5.1主菜單界面的搭建
16.5.2主菜單界面監聽腳本的開發
16.5.3遊戲界面的搭建
16.5.4遊戲界面監聽腳本的開發
16.5.5遊戲暫停界面監聽腳本的開發
16.6遊戲的優化與改進

 

<作者介紹>

吳亞峰,畢業於北京郵電大學,後留學澳大利亞臥龍崗大學取得碩士學位。1998年開始從事Java應用的開發,有10多年的Java開發與培訓經驗。主要的研究方向為OpenGL ES、手機遊戲、Java EE以及搜索引擎。同時為手機遊戲、Java EE獨立軟件開發工程師。近十年來為數十家企業培養了上千名高級軟件開發人員,曾編寫過《Unity 3D遊戲開發技術詳解與典型案例》、《Unity 4 3D開發實戰詳解》、《Unity遊戲案例開發大全》等多本暢銷技術書籍。2008年初開始關註Android平臺下的3D應用開發,並開發出一系列Android應用程序與3D遊戲