国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

# Unity 自學與進階必會目錄

2019-11-09 17:47:47
字體:
來源:轉載
供稿:網友

六本書

Unity 5權威講解Unity 3D NGUI 實戰教程Unity 5實戰 使用C和Unity開發多平臺游戲Unity 3D人工智能編程Unity官方案例精講Unity Shader入門精要

1. Unity 5權威講解 #

目錄

第1章 Unity 5簡介 11.1 Unity 3D游戲引擎的誕生 21.2 Unity 5的優勢 21.2.1 支持多平臺 21.2.2 集成開發環境 31.2.3 所有功能免費 41.2.4 中間件內建 51.2.5 開放社區 51.2.6 資源商店 61.3 使用Unity制作的游戲 71.4 下載Unity 91.4.1 安裝Unity 101.4.2 選擇Unity許可 111.4.3 注冊并登錄Unity 121.5 Unity界面 131.5.1 視圖 161.5.2 工具欄 271.5.3 設置快捷鍵 341.6 小結 34第2章 準備游戲開發 352.1 開發的游戲以及開發順序 362.2 新建項目 362.3 設置Unity IDE 372.4 系統管理項目視圖 392.5 導入角色模型 392.6 創建資源商店賬號 422.7 從項目視圖訪問資源商店 442.8 從資源商店下載資源 452.9 小結 48第3章 制作游戲場景 493.1 3D模型 503.2 紋理 513.3 材質 533.4 應用紋理 543.5 著色器以及基于物理的著色 583.5.1 渲染模式 593.5.2 反照率 593.5.3 金屬 593.5.4 法線貼圖 593.5.5 高度圖 603.5.6 遮擋貼圖 603.5.7 放射 613.5.8 細節遮蔽 613.6 表現地面陰影——使用法線貼圖 613.7 預設 623.8 用預設制作墻體 643.9 光照 683.9.1 平行光 683.9.2 點光源 693.9.3 聚光燈 693.9.4 區域光 703.10 天空的表現方法 713.10.1 六面天空盒 723.10.2 程序天空盒 743.10.3 立方圖天空盒 763.11 小結 76第4章 制作主人公角色 774.1 空游戲對象 784.2 導入3D模型并設置選項 794.3 組件 804.4 生成腳本 814.5 下載鍵盤輸入值 844.6 角色移動 874.6.1 處理組件緩存 884.6.2 游戲對象的移動 894.6.3 Translate函數 904.7 單位向量 914.8 角色旋轉:Rotate 944.9 攝像機追蹤:Follow Cam 954.10 Legacy動畫系統 984.11 動畫片段 994.12 動畫控件 1044.13 動畫合成 1074.14 實時陰影 1084.15 運用投影器制作陰影 1114.16 運用平面網格制作陰影 1154.17 小結 117第5章 制作子彈發射效果 1195.1 準備子彈模型 1205.2 Rigidbody組件 1215.3 設置物理引擎屬性:Physics Manager 1245.4 Collider組件 1255.4.1 Box Collider 1255.4.2 Sphere Collider 1255.4.3 Capsule Collider 1265.4.4 Mesh Collider 1265.4.5 Wheel Collider 1275.4.6 Terrain Collider 1285.5 碰撞感知條件 1285.6 碰撞事件 1305.7 Tag應用 1325.8 子彈發射邏輯 1355.9 制作子彈發射軌跡:Trail Renderer 1405.10 應用粒子系統 1455.11 制作爆炸效果并設置爆炸威力 1505.12 隨機使用紋理 1555.13 聲音:AudioSource與AudioListener 1575.14 槍口火焰效果:Muzzle Flash 1645.15 小結 170第6章 制作敵對角色 1716.1 Mecanim動畫系統 1726.2 導入怪獸3D模型 1736.3 轉換為Mecanim動畫 1736.4 動畫控制器 1776.5 導航:怪獸追擊例程 1836.5.1 生成導航網格并烘焙 1846.5.2 Nav Mesh Agent 1856.6 實現人工智能 1886.7 怪獸攻擊例程 1976.8 怪獸被襲時的反應 1996.9 血跡效果 2036.10 貼圖:地面上的血跡效果 2066.11 賦予怪獸攻擊技能 2116.12 特定層之間的碰撞感知 2156.13 優化Mecanim動畫角色的骨骼結構 2186.14 怪獸停止攻擊:Tag 2206.15 怪獸停止攻擊:Delegate、Event 2246.16 怪獸的死亡處理 2286.17 小結 235第7章 Unity UI 2377.1 Canvas對象 2387.1.1 EventSystem對象 2397.1.2 Canvas組件 2407.2 Rect Transform組件 2447.3 anchoredPosition屬性 2527.4 Image組件 2547.4.1 Simple 2567.4.2 Sliced 2567.4.3 Tiled 2587.4.4 Filed 2587.5 RawImage 組件 2597.6 Button組件 2607.7 Text組件 2717.8 Scroll Rect組件 2727.8.1 Content屬性 2757.8.2 Mask組件 2767.9 制作游戲分數UI 2777.10 制作生命條 2857.11 小結 289第8章 游戲管理器 2918.1 怪獸出現邏輯 2928.2 訪問游戲管理器 2968.3 單例模式 2988.4 對象池 3008.5 共享函數:聲音處理 3088.6 小結 311第9章 靈活運用射線投射 3139.1 射線投射 3149.2 油桶爆炸 3199.3 實現激光束 322第10章 導航儀高級技巧 32910.1 動態障礙物 33010.2 分離網格鏈接 33310.3 用戶自定義生成分離網格鏈接 335第11章 光照貼圖、燈光探測器 33711.1 光照 33811.1.1 Generate Lightmap UVs 選項 33811.1.2 Lightmap Static標記 33811.1.3 光照視圖 33911.1.4 準備烘焙光照的過程 34111.1.5 Auto選項 34211.1.6 構建光照貼圖 34211.1.7 Area Light 34511.2 燈光探測器 34611.2.1 Light PRobe Group 34711.2.2 Anchor Override 35011.3 小結 351第12章 場景分離與合并 35312.1 場景分離 35412.2 場景合并 357第13章 Unity內置網絡游戲 36113.1 網絡游戲的定義 36213.2 網絡游戲的物理結構 36213.3 網絡通信協議 36313.4 Unity內置網絡功能 36313.4.1 網絡視圖 36413.4.2 狀態同步 36413.4.3 遠程過程調用 36513.5 Unity網絡游戲步驟 36613.5.1 游戲服務器初始化 36613.5.2 客戶端游戲連接 36713.5.3 各游戲端點之間的通信 36813.6 開發網絡游戲 36813.6.1 生成并初始化項目 36913.6.2 場景制作 36913.6.3 制作Player 37113.6.4 Character Controller移動邏輯 37113.6.5 制作網絡管理器 37313.6.6 構建可執行文件 37413.6.7 查看連接網絡的用戶數量 37713.6.8 制作網絡玩家 38013.6.9 攝像機追蹤邏輯 38313.6.10 平滑的同步處理(OnSerializeNetworkView) 38713.6.11 發射例程(調用RPC) 39213.6.12 動畫同步 39913.6.13 探測子彈的碰撞 40513.6.14 死亡和復活處理 40613.6.15 終止連接的相關處理 41413.7 小結 415第14章 使用Photon Cloud制作網絡游戲 41714.1 第二代Unity網絡游戲引擎UNET 41814.2 第三方網絡游戲引擎 41814.3 PhotonNetwork游戲引擎 41814.3.1 Photon Server與Photon Cloud 41914.3.2 加入會員 41914.4 制作坦克大戰游戲 42114.4.1 坦克移動邏輯 42214.4.2 履帶動畫 42414.4.3 設置攝像機追蹤邏輯與攝像機位置 42714.4.4 旋轉炮塔 42814.4.5 調整炮身角度 43114.4.6 建立炮彈預設和發射邏輯 43214.4.7 炮彈發射音效 43814.5 安裝Photon Unity Networking插件 43914.6 將坦克游戲更改為Photon Cloud版本 44114.6.1 連接Photon Cloud 44214.6.2 隨機配對 44414.6.3 制作房間 44514.6.4 Photon View 44714.6.5 動態生成坦克 44814.6.6 構建游戲并測試連接 45114.6.7 控制自己的坦克 45314.6.8 平滑移動和旋轉處理 45414.6.9 同步炮塔與炮身 45814.6.10 發射炮彈 46314.6.11 坦克被擊中時的處理及復活 46514.7 制作游戲大廳 46914.7.1 制作大廳場景 46914.7.2 制作登錄UI 47114.7.3 進入游戲房間 47914.7.4 制作坦克HUD 48414.7.5 創建并進入房間 49214.7.6 構建房間目錄UI 49714.7.7 接收房間列表 50414.7.8 動態增加按鈕事件 51614.8 戰地細節功能 52014.8.1 顯示房間內的玩家數 52014.8.2 退出房間 52314.8.3 顯示連接日志 52514.8.4 事件鉤子 53014.9 評分并顯示 53414.10 在Unity中連接數據庫 547 14.10.1 JSON 547 14.10.2 SimpleJSON 549 14.10.3 將分數信息保存到數據庫 551 14.10.4 從數據庫獲取排名信息 55414.11 小結 557第15章 提升游戲真實感 55915.1 布娃娃系統 56015.1.1 創建項目并下載資源 56015.1.2 制作舞臺 56115.1.3 生成3D模型的布娃娃系統 56215.2 觸屏 57115.2.1 ScreenPointToRay函數 57115.2.2 Touch類 57415.2.3 Unity Remote4 57715.3 通過觸屏移動 57915.4 小結 582附錄 數據庫 5831.數據庫和數據庫管理系統 5842.數據庫服務器 5843. SQL 5844. DBMS的數據管理 5845.數據表 5856.列與行 5857. SQL 586

2. Unity 3D NGUI 實戰教程 #

第1章 初識NGUI1.1 游戲UI開發介紹1.1.1 什么是游戲UI1.1.2 UI為何如此重要1.1.3 UI開發的流程1.1.4 UI開發的難點1.2 什么是NGUI1.2.1 NGUI插件介紹1.2.2 NGUI的強大優勢第2章 NGUI基礎2.1 導入NGUI插件2.1.1 NGUI版本介紹2.1.2 NGUI的下載和購買2.1.3 導入NGUI插件應用2.1.4 導入常見問題2.2 認識基本的UI資源2.2.1 什么是UI精靈(Sprite)2.2.2 什么是UI圖集(Atlas)2.2.3 什么是UI貼圖(Texture)2.2.4 什么是UI標簽(Label)2.2.5 什么是UI字體(Font)2.3 制作第一個UI圖集2.3.1 學會解剖UI的資源結構2.3.2 如何導入切好的美術資源2.3.3 用Atlas Maker制作圖集2.4 制作第一個UI字體2.4.1 為什么要制作UI字體2.4.2 靜態字體和動態字體2.4.3 制作靜態字體介紹2.4.4 制作動態字體介紹2.5 創建第一個UI2.5.1 創建一個2D UI2.5.2 創建一個3D UI2.5.3 了解UIRoot、Uipanel和UICamera組件2.6 2DUI和3DUI的工作原理2.6.1 2DUI的工作原理2.6.2 3DUI的工作原理2.6.3 如何判斷該選擇哪一種UI2.7 深度(Depth)概念2.7.1 強化對深度的理解2.7.2 小心相機的深度第3章 核心組件3.1 什么是UI控件3.2 制作精靈(UISprite)3.2.1 怎樣判斷是否應該使用精靈3.2.2 創建精靈3.2.3 Sprite組件的設置3.3 制作標簽(Label)3.3.1 怎樣判斷是否應當使用標簽3.3.2 創建標簽3.3.3 Label的文字設置3.4 制作UI紋理(UITexture)3.4.1 什么情況下使用UITexture3.4.2 創建紋理3.4.3 紋理的設置3.5 制作按鈕(Button)3.5.1 怎樣判斷應該使用按鈕3.5.2 創建按鈕3.5.3 核心組件BoxCollider3.5.4 核心組件UIButton3.5.5 制作按鈕的放縮動畫3.5.6 制作按鈕的偏移動畫3.5.7 制作按鈕的旋轉動畫3.5.8 添加按鈕單擊音效3.5.9 任何事物都可以變成按鈕,不僅僅是UI3.6 制作進度條(UISlider)3.6.1 怎樣判斷是否應當使用進度條3.6.2 創建進度條3.6.3 核心組件UISlider設置3.6.4 進度條的BoxCollider說明3.7 制作輸入框(Input)3.7.1 怎樣判斷是否應當使用輸入框3.7.2 創建輸入框3.7.3 核心組件Input設置3.7.4 輸入框使用的一些注意事項3.8 制作滾動視圖(ScrollView)3.8.1 怎樣判斷是否應當使用滾動視圖3.8.2 創建滾動視圖3.8.3 滾動視圖核心組件UIPanel3.8.4 滾動視圖核心組件UIScrollView3.8.5 創建一個拖動條3.8.6 拖動條說明3.8.7 讓視圖內的內容可以被拖動3.8.8 制作滾動視圖時的注意事項3.9 制作復選框(Toggle)3.9.1 怎樣判斷是否應當使用復選框3.9.2 創建復選框3.9.3 復選框的核心組件UIToggle3.10 制作下拉菜單(PopupList)3.10.1 怎樣判斷是否應當使用下拉菜單3.10.2 創建下拉菜單3.10.3 顯示當前選中的選項3.10.4 下拉菜單核心組件PopupList3.10.5 制作下拉菜單的注意事項第4章 UI動畫4.1 常見的兩種UI動畫介紹4.1.1 要區分UI動畫和UI特效兩個概念4.1.2 關于Tween動畫4.1.3 關于Animation動畫4.2 漸隱漸現動畫(透明度動畫)4.2.1 透明度動畫的介紹和應用4.2.2 使用透明度動畫TweenAlpha4.2.3 使用透明度動畫的注意點4.3 顏色變化動畫(變色動畫)4.3.1 變色動畫的介紹和應用4.3.2 使用顏色動畫TweenColor4.3.3 使用顏色動畫的注意點4.4 位置變換動畫(位移動畫)4.4.1 位移動畫的介紹和應用4.4.2 使用位移動畫TweenPosition4.4.3 使用位移動畫的注意點4.5 旋轉變化動畫(旋轉動畫)4.5.1 旋轉動畫的介紹和應用4.5.2 使用旋轉動畫TweenRotation4.5.3 使用旋轉動畫的注意點4.6 大小變化動畫(放縮動畫)4.6.1 放縮動畫的介紹和應用4.6.2 使用放縮動畫TweenScale4.6.3 使用放縮動畫的注意點4.7 Tween動畫總結4.8 動畫控制組件UIPlayTween4.8.1 為什么要用UIPlayTween4.8.2 動畫核心組件UIPlayTween講解4.8.3 使用UIPlayTween的注意事項4.9 動畫控制組件UIPlayAnimation4.9.1 為什么要用UIPlayAnimation4.9.2 為UI添加Animation組件4.9.3 動畫核心組件UIPlayAnimation講解4.9.4 使用UIPlayAnimation注意事項第5章 其他組件5.1 使用Toggle制作頁簽5.1.1 頁簽的工作原理5.1.2 一個完整的頁簽界面5.1.3 制作兩個頁簽按鈕5.1.4 使用ToggleObjects來記錄頁簽內容5.1.5 制作頁簽注意事項5.2 拖動攝像機來瀏覽超大界面5.2.1 拖動相機功能的介紹和應用5.2.2 核心原理和組件介紹5.2.3 拖動相機瀏覽超大界面的注意事項5.3 使用Grid自動排列UI5.3.1 自動排列UI的應用5.3.2 自動排列UI核心組件Grid介紹5.4 使用DragObject直接拖動物體5.5 讓玩家通過拖動自由改變控件大小5.6 制作序列幀精靈動畫(SpriteAnimation)5.6.1 什么是序列幀精靈動畫5.6.2 SpriteAnimation組件第6章 NGUI實戰進階6.1 UI開發核心問題–UI隨屏幕自適應6.1.1 屏幕分辨率對UI適配的影響6.1.2 主流設備的屏幕分辨率6.1.3 自適應核心組件Anchor的使用6.1.4 使用Anchor的注意事項6.1.5 正式開發UI之前必須明確的幾個問題6.2 UI元素的相對自適應6.2.1 什么是UI元素的相對自適應6.2.2 Anchors的介紹及使用6.2.3 使用Anchors的范例:背景圖的全屏適配6.2.4 使用Anchors的注意事項6.3 多攝像機同時協作運行6.3.1 攝像的渲染層的概念6.3.2 多攝像機協作的應用范圍6.3.3 如何創建多個UI攝像機6.3.4 多攝像機協作的注意事項6.4 巧用九宮格以減少UI資源量6.4.1 項目安裝包大小對項目的影響

3. Unity 5實戰 使用C#和Unity開發多平臺游戲 #

第Ⅰ部分起步第1章初識Unity31.1為什么Unity如此優秀41.1.1Unity的優勢41.1.2要意識到的缺點51.1.3使用Unity構建的游戲案例61.2如何使用Unity91.2.1Scene視圖、Game視圖和工具欄101.2.2使用鼠標和鍵盤111.2.3Hierarchy標簽和Inspector121.2.4Project和Console標簽121.3開始使用Unity編程131.3.1代碼在Unity中是如何運行的:腳本組件141.3.2使用MonoDevelop,跨平臺的IDE151.3.3打印到控制臺:HelloWorld!161.4小結18第2章構建一個讓你置身3D空間的演示192.1在開始之前202.1.1對項目做計劃202.1.2了解3D坐標空間212.2開始項目:在場景中放置對象222.2.1第二步:地板、外墻和內墻222.2.2燈光和攝像機252.2.3玩家的碰撞器和視口262.3讓東西移動:應用變換的腳本272.3.1圖示說明如何通過編程實現旋轉272.3.2編寫代碼實現圖中演示的運動272.3.3本地和全局坐標空間292.4用于觀察周圍的組件腳本:MouseLook302.4.1跟蹤鼠標運動的水平旋轉312.4.2在一定范圍內的垂直旋轉322.4.3同時水平和垂直旋轉332.5鍵盤輸入組件:第一人稱控件362.5.1響應按下的鍵362.5.2設置獨立于計算機運行速度的運動速率372.5.3為了碰撞檢測,移動CharacterController382.5.4調整組件為走路而不是飛翔392.6小結41第3章為3D游戲添加敵人和子彈433.1通過射線射擊443.1.1什么是射線發射443.1.2使用命令ScreenPointToRay來發射453.1.3為準心和擊中點添加可視化提示463.2腳本化反應的目標493.2.1確定被擊中的對象493.2.2警告目標它被擊中503.3基本漫游AI523.3.1圖解基礎AI的工作原理523.3.2使用射線發射發現障礙物523.3.3跟蹤角色狀態543.4產生敵人預設553.4.1什么是預設553.4.2創建敵人預設563.4.3在不可見的SceneController中實例化573.5通過實例化對象進行射擊593.5.1創建子彈預設593.5.2發射子彈并和目標碰撞603.5.3傷害玩家633.6小結63第4章為游戲開發圖形654.1了解美術資源654.2構建基礎3D場景:白盒674.2.1白盒的解釋684.2.2為關卡繪制地板平面圖684.2.3根據平面圖布局幾何體694.3使用2D圖像給場景貼圖704.3.1選擇文件格式714.3.2導入圖像文件724.3.3應用圖像734.4使用貼圖圖像產生天空視覺效果754.4.1什么是天空盒754.4.2創建一個新天空盒材質764.5使用自定義3D模型774.5.1選擇文件格式784.5.2導出和導入模型794.6使用粒子系統創建效果814.6.1調整默認效果的參數824.6.2為火焰應用新貼圖834.6.3將粒子效果附加到3D對象上844.7小結85第Ⅱ部分輕松工作第5章使用Unity新的2D功能構建一款記憶力游戲895.1設置2D圖形905.1.1為項目做準備905.1.2顯示2D圖像(亦稱精靈)925.1.3將攝像機切換為2D模式945.2構建卡片對象并讓它響應單擊955.2.1從精靈構建對象955.2.2鼠標輸入代碼965.2.3當單擊時顯示卡片965.3顯示不同的卡片圖像975.3.1通過程序加載圖像975.3.2通過不可見的SceneController來設置圖像985.3.3實例化一個網格的卡片1005.3.4打亂卡片1015.4實現匹配和匹配得分1035.4.1保存并比較翻開的卡片1045.4.2隱藏錯誤卡片1045.4.3顯示積分的文本1055.5重啟按鈕1065.5.1使用SendMessage編寫UIButton組件1075.5.2從SceneController中調用LoadLevel1095.6小結110第6章在3D游戲中放置2D圖形用戶界面1116.1在開始寫代碼之前……1126.1.1直接模式GUI還是高級2D界面1126.1.2規劃布局1136.1.3導入UI圖像1146.2設置GUI顯示1146.2.1為界面創建畫布1156.2.2按鈕、圖像和文本標簽1166.2.3控制UI元素的位置1186.3編寫UI中的交互1196.3.1編寫不可見的UIController1206.3.2創建彈出窗口1216.3.3使用滑動條和輸入域設置值1246.4通過響應事件更新游戲1266.4.1集成事件系統1276.4.2從場景中廣播和偵聽事件1276.4.3從HUD廣播和偵聽事件1286.5小結130第7章創建第三人稱3D游戲:玩家移動和動畫1317.1調整攝像機視圖為第三人稱視角1337.1.1導入一個用于觀察的角色1337.1.2將陰影添加到場景1347.1.3攝像機環繞玩家角色1357.2編寫程序控制camera-relative的移動1377.2.1旋轉角色,以朝向移動方向1387.2.2朝著方向向前移動1407.3實現跳躍動作1417.3.1應用垂直速度和加速度1427.3.2修改地面檢測來處理邊緣和斜坡1437.4設置玩家角色上的動畫1467.4.1在導入的模型上定義動畫剪輯1487.4.2為動畫創建動畫控制器1497.4.3編寫操作Animator組件的代碼1537.5小結154第8章在游戲中添加交互設施和物件1558.1創建門和其他設施1568.1.1由按鍵控制開/關的門1568.1.2在開門之前檢查距離和朝向1578.1.3創建一個變色監控器1598.2通過碰撞與對象交互1608.2.1和具有物理功能的障礙物碰撞1608.2.2用一個壓力板來觸發門1618.2.3收集當前關卡游戲中分散的物件1638.3管理倉庫數據和游戲狀態1658.3.1設置玩家和倉庫管理器1658.3.2編程實現游戲管理器1668.3.3把物品存儲在集合對象中:List與Dictionary1708.4使用和裝備物品的倉庫UI1738.4.1在UI中顯示倉庫物品1738.4.2裝備一個用來開門的鑰匙1758.4.3通過使用血量包來恢復玩家的血量1778.5小結178第Ⅲ部分沖刺階段第9章將游戲連接到互聯網1819.1創建戶外場景1829.1.1使用天空盒生成天空視覺效果1829.1.2通過代碼設置大氣環境1839.2從互聯網服務下載天氣數據1859.2.1使用協程請求WWW數據1889.2.2解析xml1929.2.3解析JSON1939.2.4基于天氣數據影響場景1959.3添加一個網絡布告欄1969.3.1從互聯網加載圖像1969.3.2在布告欄上顯示圖像1999.3.3緩存下載的圖像以供重用2009.4將數據發送到Web服務器2019.4.1跟蹤當前的天氣:發送post請求2029.4.2php中的服務器端代碼2049.5小結204第10章播放音頻:音效和音樂20510.1導入音效20610.1.1所支持的文件格式20610.1.2導入音頻文件20710.2播放音效20810.2.1音頻剪輯、音源和聲音偵聽器20810.2.2設定一個循環聲音20910.2.3從代碼觸發音效21010.3音頻控制接口21110.3.1建立中心AudioManager21210.3.2音量控制UI21410.3.3播放UI聲音21710.4背景音樂21810.4.1播放循環音樂21810.4.2獨立控制音樂的音量22110.4.3歌曲間的淡入淡出22310.5小結226第11章將各部分整合為一個完整的游戲22711.1再次利用項目來構建角色扮演RPG22811.1.1將多個項目的資源和代碼裝配在一起22811.1.2編寫指向-單擊的控件:移動和設備23111.1.3使用新界面替換舊GUI23511.2開發總體的游戲結構24111.2.1控制任務流和多關卡24211.2.2通過到達退出條件完成一個關卡24511.2.3當被敵人捕捉時關卡失敗24711.3處理玩家游戲過程中的進度24911.3.1保存并加載玩家進度24911.3.2通過完成三個關卡打敗游戲25311.4小結255第12章將游戲部署到玩家的設備25512.1構建桌面環境:Windows、Mac和linux25912.1.1構建應用25912.1.2調整PlayerSettings:設置游戲的名稱和圖標26012.1.3平臺依賴的編譯26112.2為Web構建游戲26212.2.1UnityPlayer和HTML/WebGL26212.2.2構建Unity文件和一個測試Web頁面26212.2.3與瀏覽器中的javaScript通信26312.3構建移動應用的平臺:iOS和Android26412.3.1設置構建工具26512.3.2貼圖壓縮26812.3.3開發插件26912.4小結277附錄A場景導航和鍵盤快捷鍵279A.1使用鼠標進行場景導航279A.2一般使用鍵盤快捷鍵280附錄B與Unity一同使用的外部工具281B.1編程工具281B.1.1VisualStudio281B.1.2Xcode281B.1.3AndroidSDK282B.1.4SVN、Git或Mercurial282B.23D美術應用282B.2.1Maya282B.2.23dsMax282B.2.3Blender283B.32D圖像編輯器283B.3.1photoshop283B.3.2GIMP283B.3.3TexturePacker283B.4音頻軟件283B.4.1ProTools284B.4.2Audacity284附錄C在Blender中建模一個板凳285C.1構建網格幾何體285C.2模型貼圖映射288附錄D在線學習資源293D.1附加的指南293D.2代碼庫294后序297

4. Unity 3D人工智能編程 #

前 言第1章 人工智能導論 11.1 人工智能 11.2 游戲中的人工智能 21.3 人工智能技術 31.3.1 有限狀態機 31.3.2 人工智能中的隨機性和概率 51.3.3 感應器系統 61.3.4 群組、蜂擁和羊群效應 71.3.5 路徑跟隨和引導 81.3.6 A*尋路算法 91.3.7 導航網格 161.3.8 行為樹 181.3.9 運動 201.3.10 Dijkstra算法 231.4 本章小結 23第2章 有限狀態機 242.1 玩家的坦克 242.1.1  PlayerTankController類 252.1.2 初始化 262.2 子彈類 292.3 設置航點 312.4 抽象有限狀態機類 322.5 敵方坦克的人工智能 342.5.1 巡邏狀態 362.5.2 追逐狀態 382.5.3 攻擊狀態 382.5.4 死亡狀態 402.6 使用有限狀態機框架 422.6.1 AdvanceFSM類 422.6.2 FSMState類 432.6.3 狀態類 442.6.4 NPCTankController 類 462.7 本章小結 48第3章 隨機性和概率 493.1 隨機性 503.2 概率的定義 523.2.1 獨立與關聯事件 533.2.2 條件概率 533.3 人物個性 563.4 有限狀態機和概率 573.5 動態人工智能 593.6 示例老虎機 603.6.1  隨機老虎機 603.6.2 加權概率 633.7 本章小結 68第4章 感應器的實現 704.1 基本的感覺系統 714.2 場景設置 724.3 玩家的坦克與切面 734.3.1 玩家的坦克 744.3.2 切面 754.4 人工智能角色 764.4.1 感觀 774.4.2 視覺 784.4.3 觸覺 804.5 測試 824.6 本章小結 83第5章 群組行為 845.1 島嶼示例中的群組行為 845.1.1 個體的行為 855.1.2 控制器 905.2 替代實現 925.3 本章小結 99第6章 路徑跟隨和引導行為 1006.1 跟隨一條路徑 1006.1.1 路徑腳本 1026.1.2 路徑跟隨 1036.2 避開障礙物 1066.2.1 添加定制圖層 1076.2.2 避開障礙 1086.3 本章小結 113第7章 A*尋路算法 1147.1 回顧A*尋路算法 1147.2 實現 1167.2.1 Node 1167.2.2 PriorityQueue 1177.2.3 GridManager 1187.2.4 AStar 1237.2.5 TestCode類 1267.3 場景設置 1287.4 測試 1317.5 本章小結 132第8章 導航網格 1338.1 簡介 1348.2 設置地圖 1348.2.1 Navigation Static 1358.2.2 烘焙導航網格 1358.2.3 導航網格代理 1368.3 有斜坡的場景 1398.4 NavMeshLayers 1418.5 分離網格鏈接 1448.5.1 生成分離網格鏈接 1458.5.2 手動生成分離網格鏈接 1468.6 本章小結 148第9章 行為樹 1499.1 Behave插件 1499.2 工作流 1519.3 行為節點 1539.4 與腳本的接口 1559.5 裝飾節點 1589.6 Behave調試器 1609.7 順序節點 1609.8 探索Behave的結果 1629.9 選擇節點 1639.10 優先級選擇節點 1669.11 并行節點 1689.12 引用 1699.13 機器人與外星人項目 1709.14 本章小結 173第10章 融會貫通 17410.1 場景設置 17510.2 車輛 17710.2.1 玩家控制的車輛 17810.2.2 人工智能車輛控制器 18010.2.3 有限狀態機 18210.3 武器 18710.3.1 槍 18710.3.2 子彈 18910.3.3 發射器 19110.3.4 導彈 19310.4 本章小結 195

5. Unity官方案例精講 #

第 1 章 C# 腳本編程基礎 ………………. 11.1 配置腳本開發環境 ………………………………..21.1.1 配置 Visual Studio …………………….21.1.2 配置MonoDevelop ……………………61.1.3 腳本的創建 ……………………………..81.2 變量、數組與函數 ………………………………..91.2.1 變量的聲明與使用 ……………………91.2.2 數組的聲明與使用 ………………….111.2.3 函數的聲明與使用 ………………….121.3 語句、表達式與運算符 ……………………. 141.3.1 語句 ……………………………………….141.3.2 表達式 ……………………………………161.3.3 運算符 ……………………………………161.4 協程(Coroutine) ………………………………. 181.5 類與類的使用 ……………………………………… 211.6 輸出調試信息 ……………………………………… 221.7 C# 腳本示例 ………………………………………… 221.8 Unity 腳本事件執行順序 ………………….. 261.9 腳本模板與腳本編碼 ………………………… 281.10 Unity 5 腳本升級 ……………………………… 29第 2 章 Javascript 腳本編程基礎 ….. 312.1 JavaScript 腳本編程基礎 ………………….. 322.2 變量、數組與函數 …………………………….. 322.2.1 變量 ……………………………………….322.2.2 數組 ……………………………………….332.2.3 函數 ……………………………………….352.3 表達式、語句與運算符 ……………………. 372.4 JavaScript 腳本示例 …………………………… 392.5 JavaScript 腳本與 C# 腳本的交互 …… 41第 3 章星際航行游戲——jspace Shooter ……………… 453.1 導入模型、貼圖和材質 ……………………. 463.1.1 導入資源包文件 ……………………..463.1.2 創建飛船對象 …………………………493.1.3 設置攝像機參數 ……………………..503.1.4 添加圖片背景 …………………………503.1.5 添加粒子背景效果 ………………….523.2 編寫腳本代碼 ……………………………………… 533.2.1 鍵盤控制飛船移動 ………………….533.2.2 實現射擊行為(Shot) …………….573.2.3 添加小行星(Asteroid) …………..613.3 添加音頻 ……………………………………………… 693.3.1 添加碰撞爆炸音頻 ………………….693.3.2 添加飛船射擊音頻 ………………….693.3.3 添加背景音效 …………………………703.4 添加計分文本 ……………………………………… 713.4.1 添加計分 Text 組件 …………………713.4.2 添加計分功能 …………………………723.5 游戲結束與重新開始 ………………………… 743.5.1 添加游戲結束的 Text 組件 ………743.5.2 添加結束游戲的功能 ………………753.5.3 添加重新開始的 Text 組件 ………763.5.4 添加重新開始游戲的功能 ……….77第 4 章潛行游戲——Stealth ……….. 794.1 加載場景 …………………………………………… 804.1.1 創建場景 ………………………………..804.1.2 添加場景元素 …………………………804.1.3 添加燈光 ………………………………..824.1.4 烘焙場景Lightmaps ………………..844.1.5 添加 Tag 管理類 ……………………..874.1.6 添加轉場效果 …………………………874.1.7 添加游戲控制器GameController ……………………….894.1.8 添加 CCTV Camera …………………924.1.9 添加 Laser Grid ……………………….944.2 導入和配置人物角色 ………………………… 974.2.1 導入角色模型 …………………………974.2.2 設置角色動畫 …………………………984.2.3 創建動畫參數管理類 ………………994.2.4 添加控制角色運動功能 …………1014.2.5 添加控制攝像機跟隨的功能 ….1044.3 主角與環境交互 ………………………………..1074.3.1 添加控制開關臺的功能 …………1074.3.2 添加管理房間鑰匙卡的功能 ….1104.3.3 添加控制單開門的功能 …………1124.3.4 添加控制雙開門的功能 …………1154.4 主角與敵人交互 ………………………………..1164.4.1 添加管理角色生命值的功能 ….1164.4.2 添加敵人角色模型 ………………..1184.4.3 添加敵人自動搜索角色的功能 …………………………1204.4.4 添加控制敵人運動功能 …………1234.4.5 添加控制敵人射擊的功能 ……..126第 5 章粒子碰撞回調功能——Particle Callbacks ………….. 1295.1 Shuriken 粒子系統介紹 ……………………1305.2 加載場景 …………………………………………….1315.3 創建粒子效果 …………………………………….1345.3.1 創建燃燒時冒煙的粒子效果 …..1345.3.2 創建燃燒時火星四濺的粒子效果 ………………………….1395.3.3 火焰大小控制 ……………………….1405.3.4 創建灑水的粒子效果 …………….1435.3.5 控制灑水位置 ……………………….1465.4 碰撞回調函數解析 ……………………………1485.5 粒子碰撞回調函數應用案例 …………..1535.5.1 水滴與桶蓋碰撞的處理 …………1535.5.2 實現水滴與燃燒桶碰撞熄滅火焰的效果 …………………….155第 6 章Mecanim動畫系統介紹——Mecanim Example Scenes ….. 1596.1 Mecanim動畫系統簡介 …………………..1606.1.1 Mecanim動畫系統的工作流 ….1606.1.2 Mecanim動畫系統中的術語 ….160

6. Unity Shader入門精要 #

第1篇 基礎篇 第1章 歡迎來到Shader的世界 21.1 程序員的三大浪漫 21.2 本書結構 3 第2章 渲染流水線 52.1 綜述 52.1.1 什么是流水線 52.1.2 什么是渲染流水線 62.2 CPU和GPU之間的通信 72.2.1 把數據加載到顯存中 72.2.2 設置渲染狀態 82.2.3 調用Draw Call 82.3 GPU流水線 92.3.1 概述 92.3.2 頂點著色器 102.3.3 裁剪 112.3.4 屏幕映射 112.3.5 三角形設置 122.3.6 三角形遍歷 132.3.7 片元著色器 132.3.8 逐片元操作 142.3.9 總結 172.4 一些容易困惑的地方 182.4.1 什么是OpenGL/DirectX 182.4.2 什么是HLSL、GLSL、CG 192.4.3 什么是Draw Call 202.4.4 什么是固定管線渲染 222.5 那么,你明白什么是Shader了嗎 232.6 擴展閱讀 23 第3章 Unity Shader基礎 243.1 Unity Shader概述 253.1.1 一對好兄弟:材質和Unity Shader 253.1.2 Unity中的材質 263.1.3 Unity中的Shader 263.2 Unity Shader的基礎:ShaderLab 283.3 Unity Shader的結構 293.3.1 給我們的Shader起個名字 293.3.2 材質和Unity Shader的橋梁:Properties 293.3.3 重量級成員:SubShader 313.3.4 留一條后路:Fallback 333.3.5 ShaderLab還有其他的語義嗎 333.4 Unity Shader的形式 333.4.1 Unity的寵兒:表面著色器 343.4.2 最聰明的孩子:頂點/片元著色器 353.4.3 被拋棄的角落:固定函數著色器 353.4.4 選擇哪種Unity Shader形式 363.5 本書使用的Unity Shader形式 363.6 答疑解惑 363.6.1 Unity Shader != 真正的Shader 363.6.2 Unity Shader和CG/HLSL之間的關系 373.6.3 我可以使用GLSL來寫嗎 383.7 擴展閱讀 38 第4章 學習Shader所需的數學基礎 394.1 背景:農場游戲 394.2 笛卡兒坐標系 404.2.1 二維笛卡兒坐標系 404.2.2 三維笛卡兒坐標系 414.2.3 左手坐標系和右手坐標系 424.2.4 Unity使用的坐標系 444.2.5 練習題 454.3 點和矢量 454.3.1 點和矢量的區別 464.3.2 矢量運算 474.3.3 練習題 534.4 矩陣 544.4.1 矩陣的定義 544.4.2 和矢量聯系起來 554.4.3 矩陣運算 554.4.4 特殊的矩陣 574.4.5 行矩陣還是列矩陣 604.4.6 練習題 614.5 矩陣的幾何意義:變換 624.5.1 什么是變換 624.5.2 齊次坐標 634.5.3 分解基礎變換矩陣 634.5.4 平移矩陣 644.5.5 縮放矩陣 644.5.6 旋轉矩陣 654.5.7 復合變換 664.6 坐標空間 674.6.1 為什么要使用這么多不同的坐標空間 684.6.2 坐標空間的變換 684.6.3 頂點的坐標空間變換過程 724.6.4 模型空間 734.6.5 世界空間 734.6.6 觀察空間 754.6.7 裁剪空間 774.6.8 屏幕空間 834.6.9 總結 854.7 法線變換 864.8 Unity Shader的內置變量(數學篇) 874.8.1 變換矩陣 874.8.2 攝像機和屏幕參數 884.9 答疑解惑 894.9.1 使用3×3還是4×4的變換矩陣 894.9.2 CG中的矢量和矩陣類型 894.9.3 Unity中的屏幕坐標:ComputeScreenPos/VPOS/WPOS 904.10 擴展閱讀 934.11 練習題答案 93第2篇 初級篇 第5章 開始Unity Shader學習之旅 1005.1 本書使用的軟件和環境 1005.2 一個最簡單的頂點/片元著色器 1005.2.1 頂點/片元著色器的基本結構 1015.2.2 模型數據從哪里來 1035.2.3 頂點著色器和片元著色器之間如何通信 1045.2.4 如何使用屬性 1055.3 強大的援手:Unity提供的內置文件和變量 1075.3.1 內置的包含文件 1075.3.2 內置的變量 1095.4 Unity提供的CG/HLSL語義 1095.4.1 什么是語義 1095.4.2 Unity支持的語義 1105.4.3 如何定義復雜的變量類型 1105.5 程序員的煩惱:Debug 1115.5.1 使用假彩色圖像 1115.5.2 利用神器:Visual Studio 1135.5.3 最新利器:幀調試器 1135.6 小心:渲染平臺的差異 1155.6.1 渲染紋理的坐標差異 1155.6.2 Shader的語法差異 1165.6.3 Shader的語義差異 1175.6.4 其他平臺差異 1175.7 Shader整潔之道 1175.7.1 float、half還是fixed 1175.7.2 規范語法 1185.7.3 避免不必要的計算 1185.7.4 慎用分支和循環語句 1195.7.5 不要除以0 1195.8 擴展閱讀 120 第6章 Unity中的基礎光照 1216.1 我們是如何看到這個世界的 1216.1.1 光源 1216.1.2 吸收和散射 1226.1.3 著色 1226.1.4 BRDF光照模型 1236.2 標準光照模型 1236.2.1 環境光 1236.2.2 自發光 1246.2.3 漫反射 1246.2.4 高光反射 1246.2.5 逐像素還是逐頂點 1256.2.6 總結 1256.3 Unity中的環境光和自發光 1266.4 在Unity Shader中實現漫反射光照模型 1266.4.1 實踐:逐頂點光照 1266.4.2 實踐:逐像素光照 1296.4.3 半蘭伯特模型 1306.5 在Unity Shader中實現高光反射光照模型 1316.5.1 實踐:逐頂點光照 1326.5.2 實踐:逐像素光照 1346.5.3 Blinn-Phong光照模型 1356.6 召喚神龍:使用Unity內置的函數 136 第7章 基礎紋理 1397.1 單張紋理 1407.1.1 實踐 1407.1.2 紋理的屬性 1427.2 凹凸映射 1467.2.1 高度紋理 1467.2.2 法線紋理 1467.2.3 實踐 1487.2.4 Unity中的法線紋理類型 1547.3 漸變紋理 1557.4 遮罩紋理 1587.4.1 實踐 1597.4.2 其他遮罩紋理 161 第8章 透明效果 1628.1 為什么渲染順序很重要 1638.2 Unity Shader的渲染順序 1648.3 透明度測試 1658.4 透明度混合 1698.5 開啟深度寫入的半透明效果 1718.6 ShaderLab的混合命令 1738.6.1 混合等式和參數 1738.6.2 混合操作 1748.6.3 常見的混合類型 1758.7 雙面渲染的透明效果 1768.7.1 透明度測試的雙面渲染 1768.7.2 透明度混合的雙面渲染 176第3篇 中級篇 第9章 更復雜的光照 1809.1 Unity的渲染路徑 1809.1.1 前向渲染路徑 1829.1.2 頂點照明渲染路徑 1859.1.3 延遲渲染路徑 1869.1.4 選擇哪種渲染路徑 1889.2 Unity的光源類型 1889.2.1 光源類型有什么影響 1899.2.2 在前向渲染中處理不同的光源類型 1909.3 Unity的光照衰減 1959.3.1 用于光照衰減的紋理 1969.3.2 使用數學公式計算衰減 1969.4 Unity的陰影 1969.4.1 陰影是如何實現的 1979.4.2 不透明物體的陰影 1989.4.3 使用幀調試器查看陰影繪制過程 2029.4.4 統一管理光照衰減和陰影 2049.4.5 透明度物體的陰影 2069.5 本書使用的標準Unity Shader 209 第10章 高級紋理 21010.1 立方體紋理 21010.1.1 天空盒子 21010.1.2 創建用于環境映射的立方體紋理 21210.1.3 反射 21310.1.4 折射 21510.1.5 菲涅耳反射 21710.2 渲染紋理 21910.2.1 鏡子效果 21910.2.2 玻璃效果 22010.2.3 渲染紋理 vs. GrabPass 22410.3 程序紋理 22510.3.1 在Unity中實現簡單的程序紋理 22510.3.2 Unity的程序材質 228 第11章 讓畫面動起來 23011.1 Unity Shader中的內置變量(時間篇) 23011.2 紋理動畫 23011.2.1 序列幀動畫 23011.2.2 滾動的背景 23311.3 頂點動畫 23411.3.1 流動的河流 23411.3.2 廣告牌 23611.3.3 注意事項 239第4篇 高級篇 第12章 屏幕后處理效果 24412.1 建立一個基本的屏幕后處理腳本系統 24412.2 調整屏幕的亮度、飽和度和對比度 24612.3 邊緣檢測 24912.3.1 什么是卷積 24912.3.2 常見的邊緣檢測算子 24912.3.3 實現 25012.4 高斯模糊 25312.4.1 高斯濾波 25312.4.2 實現 25412.5 Bloom效果 25912.6 運動模糊 26312.7 擴展閱讀 266 第13章 使用深度和法線紋理 26713.1 獲取深度和法線紋理 26713.1.1 背后的原理 26713.1.2 如何獲取 26913.1.3 查看深度和法線紋理 27113.2 再談運動模糊 27213.3 全局霧效 27613.3.1 重建世界坐標 27613.3.2 霧的計算 27813.3.3 實現 27813.4 再談邊緣檢測 28313.5 擴展閱讀 287 第14章 非真實感渲染 28814.1 卡通風格的渲染 28814.1.1 渲染輪廓線 28814.1.2 添加高光 28914.1.3 實現 29014.2 素描風格的渲染 29314.3 擴展閱讀 29614.4 參考文獻 297 第15章 使用噪聲 29815.1 消融效果 29815.2 水波效果 30215.3 再談全局霧效 30515.4 擴展閱讀 30915.5 參考文獻 309 第16章 Unity中的渲染優化技術 31016.1 移動平臺的特點 31016.2 影響性能的因素 31116.3 Unity中的渲染分析工具 31216.3.1 認識Unity 5的渲染統計窗口 31216.3.2 性能分析器的渲染區域 31316.3.3 再談幀調試器 31316.3.4 其他性能分析工具 31416.4 減少draw call數目 31416.4.1 動態批處理 31516.4.2 靜態批處理 31616.4.3 共享材質 31816.4.4 批處理的注意事項 31816.5 減少需要處理的頂點數目 31916.5.1 優化幾何體 31916.5.2 模型的LOD技術 31916.5.3 遮擋剔除技術 32016.6 減少需要處理的片元數目 32016.6.1 控制繪制順序 32016.6.2 時刻警惕透明物體 32116.6.3 減少實時光照和陰影 32116.7 節省帶寬 32216.7.1 減少紋理大小 32216.7.2 利用分辨率縮放 32316.8 減少計算復雜度 32316.8.1 Shader的LOD技術 32316.8.2 代碼方面的優化 32316.8.3 根據硬件條件進行縮放 32416.9 擴展閱讀 324第5篇 擴展篇 第17章 Unity的表面著色器探秘 32817.1 表面著色器的一個例子 32817.2 編譯指令 33017.2.1 表面函數 33017.2.2 光照函數 33017.2.3 其他可選參數 33117.3 兩個結構體 33217.3.1 數據來源:Input結構體 33217.3.2 表面屬性:SurfaceOutput結構體 33317.4 Unity背后做了什么 33417.5 表面著色器實例分析 33617.6 Surface Shader的缺點 341 第18章 基于物理的渲染 34218.1 PBS的理論和數學基礎 34218.1.1 光是什么 34318.1.2 雙向反射分布函數(BRDF) 34418.1.3 漫反射項 34518.1.4 高光反射項 34618.1.5 Unity中的PBS實現 34718.2 Unity 5的Standard Shader 34818.2.1 它們是如何實現的 34818.2.2 如何使用Standard Shader 34918.3 一個更加復雜的例子 35218.3.1 設置光照環境 35218.3.2 放置反射探針 35518.3.3 調整材質 35618.3.4 線性空間 35618.4 答疑解惑 35718.4.1 什么是全局光照 35718.4.2 什么是伽馬校正 35818.4.3 什么是HDR 36118.4.4 那么,PBS適合什么樣的游戲 36218.5 擴展閱讀 36318.6 參考文獻 363 第19章 Unity 5更新了什么 36519.1 場景“更亮了” 36519.2 表面著色器更容易“報錯了” 36519.3 當家做主:自己控制非統一縮放的網格 36619.4 固定管線著色器逐漸退出舞臺 366 第20章 還有更多內容嗎 36820.1 如果你想深入了解渲染的話 36820.2 世界那么大 36920.3 參考文獻 369

End.

Note by HF.



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蒙自县| 张家界市| 绥滨县| 水城县| 神木县| 南阳市| 巴林右旗| 漾濞| 菏泽市| 梅州市| 灵宝市| 宁远县| 邛崃市| 巧家县| 威信县| 新丰县| 姜堰市| 台中县| 汶川县| 湘阴县| 池州市| 双江| 德江县| 石屏县| 澎湖县| 云南省| 绥滨县| 秭归县| 乐业县| 江永县| 孝感市| 宜城市| 喀喇沁旗| 正宁县| 永福县| 巴彦淖尔市| 星子县| 察哈| 库尔勒市| 汝阳县| 龙川县|