Unity 3D游戲開發(fā)技術(shù)詳解與典型案例

出版時(shí)間:2012-11  出版社:吳亞峰、 于復(fù)興 人民郵電出版社 (2012-11出版)  作者:吳亞峰,于復(fù)興  頁數(shù):434  
Tag標(biāo)簽:無  

內(nèi)容概要

《Unity 3D游戲開發(fā)技術(shù)詳解與典型案例》對(duì)Unity 3D集成開發(fā)環(huán)境界面、腳本的編寫和眾多高級(jí)特效的實(shí)現(xiàn)進(jìn)行了詳細(xì)的介紹,內(nèi)容深入淺出,是一本適合不同需求、不同開發(fā)水平讀者的技術(shù)寶典。全書共分10章。第1章主要介紹了Unity 3D的誕生、特點(diǎn)、開發(fā)環(huán)境的搭建以及運(yùn)行機(jī)制;第2章對(duì)Unity 3D集成開發(fā)環(huán)境進(jìn)行了詳細(xì)的介紹;第3章介紹了Unity 3D中腳本的編寫;第4章主要對(duì)Unity 3D開發(fā)過程中經(jīng)常使用的組件及對(duì)象進(jìn)行了詳細(xì)的介紹; 第5章介紹了Unity開發(fā)平臺(tái)的完整的物理引擎體系;第6章介紹了天空盒、虛擬按鈕與搖桿、聲音、光源、地形引擎、角色動(dòng)畫,以及角色控制器等開發(fā)常用的技術(shù);第7章介紹了Unity 3D中的著色器和著色器語言——ShaderLab;第8章介紹了PlayerPrefs類、Network Class(網(wǎng)絡(luò)類),以及加速度傳感器的使用;第9章介紹了完整的大型3D游戲案例——3D保齡球;第10章介紹了完整的大型3D游戲案例——火力籃球。同時(shí)為了便于讀者的學(xué)習(xí),本書附贈(zèng)的光盤中包含了書中所有案例的完整源代碼,最大限度地幫助讀者快速掌握開發(fā)技術(shù)?!禪nity 3D游戲開發(fā)技術(shù)詳解與典型案例》適合從事游戲開發(fā)的編程人員學(xué)習(xí)。

作者簡(jiǎn)介

吳亞峰,畢業(yè)于北京郵電大學(xué),后留學(xué)澳大利亞臥龍崗大學(xué)取得碩士學(xué)位。1998年開始從事Java應(yīng)用的開發(fā),有十多年的Java開發(fā)與培訓(xùn)經(jīng)驗(yàn),是最早關(guān)注Android開發(fā)的人員,并開發(fā)出一系列優(yōu)秀的Android應(yīng)用程序與游戲。主要的研究方向?yàn)镺penGL ES、手機(jī)游戲、Java EE、搜索引擎,同時(shí)為手機(jī)游戲、Java EE獨(dú)立軟件開發(fā)工程師,并兼任百納科技Java培訓(xùn)中心首席培訓(xùn)師。近10年來為數(shù)十家著名企業(yè)培養(yǎng)了上千名軟件開發(fā)人員,曾編寫過《Java程序員職場(chǎng)全攻略—從小工到專家》、《Android 2.0游戲開發(fā)實(shí)戰(zhàn)寶典》、《Android核心技術(shù)與實(shí)例詳解》、《Android 3D游戲開發(fā)—技術(shù)詳解與典型案例》、《Android應(yīng)用案例開發(fā)大全》和《Android游戲開發(fā)大全》等多本暢銷書籍。

書籍目錄

第1章 Unity3D基礎(chǔ)以及開發(fā)環(huán)境的搭建 1 1.1 Unity3D基礎(chǔ)知識(shí)概覽 1 1.1.1 初識(shí)Unity3D 1 1.1.2 Unity的誕生及發(fā)展 1 1.1.3 Unity3D廣闊的市場(chǎng)前景 2 1.1.4 獨(dú)具特色的Unity3D 2 1.2 開發(fā)環(huán)境的搭建 7 1.2.1 Unity集成開發(fā)環(huán)境的安裝 7 1.2.2 目標(biāo)平臺(tái)的SDK與Unity3D的集成 11 1.3 第一個(gè)Unity3D程序 16 1.4 本章小結(jié) 23 第2章 Unity集成開發(fā)環(huán)境詳解 24 2.1 Unity集成開發(fā)環(huán)境的整體布局 24 2.1.1 Unity集成開發(fā)環(huán)境的整體布局 24 2.1.2 標(biāo)題欄 24 2.1.3 菜單欄 25 2.1.4 工具欄 26 2.1.5 場(chǎng)景設(shè)計(jì)面板 26 2.1.6 游戲預(yù)覽面板 31 2.1.7 游戲組成對(duì)象列表 32 2.1.8 項(xiàng)目資源列表 34 2.1.9 屬性查看器 35 2.1.10 狀態(tài)欄與控制臺(tái) 36 2.1.11 動(dòng)畫視圖 37 2.2 菜單欄 37 2.2.1 文件(File) 37 2.2.2 編輯(Edit) 40 2.2.3 資源(Assets) 46 2.2.4 游戲?qū)ο螅℅ameObject) 56 2.2.5 組件(Component) 65 2.2.6 地形(Terrain) 68 2.2.7 窗口(Window) 70 2.2.8 幫助(Help) 75 2.3 本章小結(jié) 79 第3章 Unity3D的腳本概述 80 3.1 Unity腳本概述 80 3.2 Unity中專用JavaScript與通用JavaScript的區(qū)別 80 3.2.1 在運(yùn)行過程中性能的差異 80 3.2.2 在語法上的區(qū)別 81 3.3 Unity的基本語法 83 3.3.1 常用操作 83 3.3.2 記錄時(shí)間 84 3.3.3 訪問其他組件 85 3.3.4 訪問其他游戲?qū)ο?86 3.3.5 向量 89 3.3.6 成員變量和全局變量 89 3.3.7 實(shí)例化 90 3.3.8 協(xié)同程序和中斷 91 3.3.9 一些重要的類 92 3.3.10 性能優(yōu)化 95 3.3.11 腳本編譯 97 3.3.12 泛化方法 98 3.4 一個(gè)簡(jiǎn)單的案例 98 3.4.1 球轉(zhuǎn)場(chǎng)景實(shí)現(xiàn) 98 3.4.2 球走場(chǎng)景實(shí)現(xiàn) 104 3.5 本章小結(jié) 108 第4章 Unity3D的常用組件及對(duì)象 109 4.1 圖形用戶界面組件 109 4.1.1 圖形用戶界面組件的變量 109 4.1.2 圖形用戶界面的具體組件 118 4.1.3 圖形用戶界面組件綜合案例 150 4.2 預(yù)制件prefab資源的應(yīng)用 154 4.2.1 預(yù)制件prefab資源的創(chuàng)建 155 4.2.2 通過prefab資源進(jìn)而實(shí)例化對(duì)象 156 4.3 常用的輸入對(duì)象 158 4.3.1 Touch輸入對(duì)象 158 4.3.2 Input輸入對(duì)象 159 4.4 銷毀相關(guān)方法 168 4.4.1 Object.Destroy方法 169 4.4.2 Network.Destroy方法 169 4.4.3 EditorWindow.OnDestroy方法 170 4.4.4 MonoBehaviour.OnDestory方法 170 4.4.5 ScriptableObject.OnDestory方法 171 4.4.6 Object.DestoryImmediate方法 171 4.5 本章小結(jié) 171 第5章 物理引擎 172 5.1 剛體 172 5.1.1 剛體特性 172 5.1.2 物理管理器 176 5.1.3 碰撞與休眠 180 5.2 碰撞器 181 5.2.1 碰撞器的添加 182 5.2.2 碰撞過濾 186 5.2.3 物理材質(zhì) 191 5.3 粒子系統(tǒng) 193 5.3.1 粒子系統(tǒng)的創(chuàng)建 194 5.3.2 粒子系統(tǒng)的特性 195 5.3.3 粒子系統(tǒng)的組合使用 198 5.4 關(guān)節(jié) 201 5.4.1 鉸鏈關(guān)節(jié) 201 5.4.2 固定關(guān)節(jié) 206 5.4.3 彈簧關(guān)節(jié) 207 5.4.4 角色關(guān)節(jié) 209 5.4.5 可配置關(guān)節(jié) 211 5.4.6 關(guān)節(jié)綜合案例——機(jī)械手 216 5.5 游戲?qū)嵗輾Я⒎襟w 223 5.6 本章小結(jié) 231 第6章 3D游戲開發(fā)的常用技術(shù) 232 6.1 天空盒的應(yīng)用 232 6.1.1 Unity內(nèi)置的天空盒資源 233 6.1.2 開發(fā)實(shí)際需要的天空盒 235 6.2 虛擬按鈕與搖桿使用 237 6.2.1 Unity內(nèi)置的虛擬按鈕與搖桿資源 237 6.2.2 虛擬按鈕與搖桿使用的案例 238 6.3 聲音 241 6.3.1 音頻管理器(AudioManager) 242 6.3.2 音頻監(jiān)聽器(AudioListener) 242 6.3.3 音頻源(AudioSource) 243 6.3.4 音頻效果(AudioEffects) 245 6.3.5 音頻混響區(qū)(AudioReverbZones) 249 6.3.6 簡(jiǎn)單的聲音控制案例 250 6.4 光源 252 6.4.1 點(diǎn)光源(Pointlight) 252 6.4.2 平行光光源(Directionallight) 254 6.4.3 聚光燈光源(Spotlight) 255 6.4.4 區(qū)域光光源(AreaLight) 257 6.4.5 光照過濾 257 6.5 3D拾取技術(shù) 259 6.6 地形引擎 262 6.6.1 創(chuàng)建地形 262 6.6.2 編輯地形 264 6.6.3 添加樹木和草 268 6.6.4 添加水 271 6.6.5 地形參數(shù) 272 6.7 角色動(dòng)畫 272 6.7.1 導(dǎo)入角色動(dòng)畫 273 6.7.2 動(dòng)畫腳本 274 6.8 角色控制器 275 6.8.1 添加角色控制器 275 6.8.2 角色控制器的使用 276 6.9 本章小結(jié) 276 第7章 著色器——Shaders 277 7.1 著色器概述 277 7.2 ShaderLab語法基礎(chǔ) 278 7.2.1 Shader 278 7.2.2 Properties 278 7.2.3 SubShader 279 7.2.4 SubShaderTags 280 7.2.5 Pass 281 7.2.6 Fallback 283 7.2.7 Category 283 7.3 通道渲染命令(ShaderLab) 283 7.3.1 顏色、材質(zhì)和光照 283 7.3.2 剪裁和深度測(cè)試 285 7.3.3 紋理處理 287 7.3.4 霧 289 7.3.5 Alpha測(cè)試 289 7.3.6 混合 291 7.3.7 通道標(biāo)簽 293 7.3.8 綁定通道 293 7.4 表面著色器和頂點(diǎn)片元著色器 294 7.4.1 表面著色器 294 7.4.2 頂點(diǎn)片元著色器 300 7.5 本章小結(jié) 303 第8章 雜項(xiàng) 304 8.1 PlayerPrefs類 304 8.2 網(wǎng)絡(luò)——Network 306 8.2.1 消息發(fā)送——MessagesSent 306 8.2.2 類變量——ClassVariables 310 8.2.3 類方法——ClassFunctions 317 8.3 加速度傳感器 326 8.4 本章小結(jié) 329 第9章 綜合案例——3D保齡球 330 9.1 游戲背景以及功能概述 330 9.1.1 背景概述 330 9.1.2 功能簡(jiǎn)介 330 9.2 游戲的策劃及準(zhǔn)備工作 332 9.2.1 游戲的策劃 332 9.2.2 使用Unity開發(fā)游戲前的準(zhǔn)備工作 333 9.3 游戲的架構(gòu) 336 9.3.1 各個(gè)場(chǎng)景的簡(jiǎn)要介紹 336 9.3.2 游戲架構(gòu)簡(jiǎn)介 337 9.4 主菜單界面 338 9.5 游戲界面 346 9.5.1 場(chǎng)景搭建 346 9.5.2 保齡球瓶及其腳本 350 9.5.3 初始化與得分計(jì)算 354 9.5.4 瓶子碰撞體的組裝 361 9.5.5 得分的繪制,儲(chǔ)存和返回鍵的開發(fā) 365 9.5.6 瓶子下降和下降臺(tái)控制 368 9.6 設(shè)置界面 370 9.7 統(tǒng)計(jì)界面 373 9.8 幫助界面 379 9.9 游戲結(jié)束界面 382 9.10 游戲的優(yōu)化與改進(jìn) 385 第10章 綜合案例——火力籃球 386 10.1 游戲背景以及功能概述 386 10.1.1 游戲背景概述 386 10.1.2 功能簡(jiǎn)介 386 10.2 游戲的策劃及準(zhǔn)備工作 388 10.2.1 游戲的策劃 388 10.2.2 使用Unity開發(fā)游戲前的準(zhǔn)備工作 388 10.3 游戲的架構(gòu) 391 10.3.1 各個(gè)場(chǎng)景的簡(jiǎn)要介紹 391 10.3.2 游戲架構(gòu)簡(jiǎn)介 392 10.4 主菜單界面 393 10.5 游戲界面 398 10.5.1 場(chǎng)景搭建 399 10.5.2 籃球及其腳本 406 10.5.3 計(jì)分觸發(fā)器開發(fā) 410 10.5.4 主攝像機(jī)設(shè)置以及腳本開發(fā) 414 10.6 設(shè)置界面 416 10.7 關(guān)于界面 418 10.8 幫助界面 420 10.8.1 場(chǎng)景搭建 420 10.8.2 籃球腳本開發(fā) 421 10.8.3 計(jì)分觸發(fā)器的腳本開發(fā) 423 10.8.4 主攝像機(jī)腳本開發(fā) 425 10.9 記錄界面 427 10.10 游戲結(jié)束界面 433 10.11 游戲的優(yōu)化與改進(jìn) 434

章節(jié)摘錄

版權(quán)頁:   插圖:   第3章 Unity 3D的腳本概述 通過前面的學(xué)習(xí),讀者應(yīng)該了解了Unity中一些基本物體的創(chuàng)建,接下來,將介紹Unity中腳本的編寫。本書的腳本以JavaScript為主,因此,本章主要講解JavaScript腳本編寫的語法和技巧,具有C#和B00編程基礎(chǔ)或是沒有編程基礎(chǔ)的讀者可參考JavaScript入門教材。 3.1 Unity腳本概述 Unity中的腳本由自定義的腳本附加到項(xiàng)目中的游戲?qū)ο笊蠘?gòu)成,這又可以叫作行為。不同的函數(shù)或者方法在特定的事件下被調(diào)用,實(shí)現(xiàn)特定的功能,下面是最常用的。Update方法:這個(gè)方法在運(yùn)行一幀之前被調(diào)用,大部分游戲代碼在這里面執(zhí)行,除了物理代碼部分。 FixUpdate方法:這個(gè)方法會(huì)在固定的物理時(shí)間步調(diào)調(diào)用一次。這里也是基本物理行為代碼執(zhí)行的地方。 方法外部代碼:方法外部的代碼在物體加載時(shí)運(yùn)行,這可以用于初始化腳本狀態(tài)。 同時(shí),讀者也可以使用事件處理程序,這些方法的名稱前面都是On(類似于OnCollisionEnter碰撞檢測(cè)),這些事件都繼承自MonoBehaviour類。 3.2 Unity中專用JavaScript與通用JavaScript的區(qū)別 雖然用于網(wǎng)頁開發(fā)的JavaScript完全符合ECMAScript標(biāo)準(zhǔn),但是Unity中的JavaScript語言卻和ECMAScript標(biāo)準(zhǔn)相去甚遠(yuǎn),比如用于網(wǎng)頁的JavaScript庫的絕大部分都無法在Unity中使用。本書將說明Unity中專用JavaScript與通用(ECMAScript)JavaScript的區(qū)別。 3.2.1 在運(yùn)行過程中性能的差異 Unity中專用JavaScript在運(yùn)行過程中存在著很多特點(diǎn),其不僅比JavaScript(ECMAScript)速度快,而且性能也更加優(yōu)異,下面將分別講解。 速度更快 Unity中的JavaScript已經(jīng)編譯過,其比動(dòng)態(tài)的JSP更快。理論上,在Unity中JavaScript、C#和Boo沒有速度上的差異,而且就算在Squirrelfish Extreme模式下,Unity的JavaScript比“真正”的JavaScript還要快。 性能更優(yōu)異 JavaScript很重要的優(yōu)化是使用靜態(tài)類型替代動(dòng)態(tài)類型。Unity使用一種技術(shù)叫做類型推理的技術(shù)來自動(dòng)轉(zhuǎn)換JavaScript為靜態(tài)類型腳本。即Unity通過#pragma strict禁用腳本的動(dòng)態(tài)類型,強(qiáng)制使用靜態(tài)類型,并且加入了嚴(yán)格的變量檢查機(jī)制,如果有未知類型的變量,Unity就會(huì)報(bào)告編譯錯(cuò)誤。 3.2.2 在語法上的區(qū)別 Unity中專用JavaScript在語法上也做了很多的改進(jìn),分別對(duì)類的定義與使用,繼承的實(shí)現(xiàn),數(shù)據(jù)類型與變量的聲明,Mono(.Net)技術(shù)的調(diào)用以及調(diào)試的改進(jìn)等,接下來將逐個(gè)進(jìn)行講解。 1.類的定義與使用 Unity中一個(gè).js腳本文件就是一個(gè)類。讀者可以聲明一個(gè)和本腳本名字相同的類,如果在腳本中沒有聲明類,則Unity就以本腳本名自動(dòng)命名一個(gè)類,腳本中的所有聲明的對(duì)象將變?yōu)檫@個(gè)類的成員。

媒體關(guān)注與評(píng)論

Unity跨平臺(tái)游戲開發(fā)工具出現(xiàn)在開發(fā)者面前,跨平臺(tái)將會(huì)開啟游戲開發(fā)的新模式?!禪nity 3D游戲開發(fā)技術(shù)詳解與典型案例》基于Unity 3.5編寫,通過豐富的游戲?qū)嵗?,以JavaScript與C#語言介紹了Unity開發(fā)。對(duì)于入門Unity開發(fā)的讀者,這本書是最佳的參考資料,很值得閱讀!——頑石互動(dòng)游戲開發(fā)工程師 仇磊若你正在學(xué)習(xí)Unity,《Unity 3D游戲開發(fā)技術(shù)詳解與典型案例》絕對(duì)值得閱讀。此外,每章的詳細(xì)實(shí)例和最后兩個(gè)精彩的綜合案例,可以快速引導(dǎo)你上手開發(fā)應(yīng)用。——樂視網(wǎng)Android高級(jí)開發(fā)工程師 于庭龍《Unity 3D游戲開發(fā)技術(shù)詳解與典型案例》詳盡介紹了Unity的開發(fā)環(huán)境布置、使用及開發(fā)技巧等,并通過相應(yīng)的實(shí)例達(dá)到學(xué)以致用,是快速學(xué)習(xí)和提高Unity開發(fā)技術(shù)的首選書籍。希望讀者通過閱讀本書,可以開發(fā)出更多、更精彩的游戲?!髂嵋苿?dòng)Android高級(jí)開發(fā)工程師 黃博

編輯推薦

《Unity 3D游戲開發(fā)技術(shù)詳解與典型案例》提供全面的Unity 3D開發(fā)知識(shí),兩大獲獎(jiǎng)商業(yè)案例,幫助您盡快進(jìn)入實(shí)戰(zhàn)角色,快速學(xué)習(xí)和提高Unity開發(fā)技術(shù)的首選。

名人推薦

如今游戲領(lǐng)域iOS、Android等智能手機(jī)的迅速崛起,讓整個(gè)游戲行業(yè)競(jìng)爭(zhēng)越發(fā)激烈。在各個(gè)游戲平臺(tái)競(jìng)爭(zhēng)的同時(shí),Unity跨平臺(tái)游戲開發(fā)工具出現(xiàn)在開發(fā)者面前,跨平臺(tái)將會(huì)開啟游戲開發(fā)的新模式。本書基于Unity 3.5編寫,通過豐富的游戲?qū)嵗?,以JavaScript與C#語言介紹了Unity開發(fā)。對(duì)于入門Unity開發(fā)的讀者,這本書是最佳的參考資料,很值得閱讀! ——頑石互動(dòng)游戲開發(fā)工程師 仇磊 Unity 3D跨平臺(tái)游戲引擎應(yīng)用現(xiàn)在受到空前關(guān)注,橫跨9種主流游戲平臺(tái),具有出色的物理引擎以及3D渲染效果。若你正在學(xué)習(xí)Unity,本書絕對(duì)值得閱讀。此外,每章的詳細(xì)實(shí)例和最后兩個(gè)精彩的綜合案例,可以快速引導(dǎo)你上手開發(fā)應(yīng)用。 ——樂視網(wǎng)Android高級(jí)開發(fā)工程師 于庭龍 Unity顯著的特點(diǎn)就是,一次開發(fā)即可輕松部署到iOS、Android、Winodws Phone等平臺(tái),使快速、高質(zhì)量的游戲開發(fā)成為現(xiàn)實(shí)。本書詳盡介紹了Unity的開發(fā)環(huán)境布置、使用及開發(fā)技巧等,并通過相應(yīng)的實(shí)例達(dá)到學(xué)以致用,是快速學(xué)習(xí)和提高Unity開發(fā)技術(shù)的首選書籍。希望讀者通過閱讀本書,可以開發(fā)出更多、更精彩的游戲。 ——索尼移動(dòng)Android高級(jí)開發(fā)工程師 黃博

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    Unity 3D游戲開發(fā)技術(shù)詳解與典型案例 PDF格式下載


用戶評(píng)論 (總計(jì)16條)

 
 

  •   這本書講到的東西很多,適合了解Unity3d,但不適合做入門的參考書,因?yàn)闁|西寫的較雜,沒有基礎(chǔ)的人看不懂,但看過文檔的又沒有必要看這本.書中所謂的兩個(gè)獲獎(jiǎng)案例不是一般的爛,不知道怎么獲得獎(jiǎng).強(qiáng)烈不推薦購買!!!!
  •   書的內(nèi)容太爛了,好像在翻譯Unity的文檔,而且翻譯的也不好,還不如直接看文檔,感覺就是騙讀者的錢的。
  •   大體看了一下,感覺不像推介的,不是俺想要的!
  •   作者毫無誠意,前幾章只是簡(jiǎn)單的羅列,連句式都是雷同的,不建議購買
  •   總的來說,還是很全面的, 樣樣都介紹, 但知識(shí)點(diǎn)與知識(shí)點(diǎn)之間沒有關(guān)聯(lián)起來,就像流水帳的一條一條介紹。代碼方面難以體現(xiàn)面向?qū)ο笏枷?,就拿第三章來說, 六個(gè)自轉(zhuǎn)的小球具有相同的行為, 為啥不先寫一個(gè)基類而是一個(gè)小球一個(gè)類呢? 而且代碼不夠嚴(yán)密, 前面明明提倡讀者聲明變量時(shí)最好寫明類型, 以便提升執(zhí)行效率,但在你們的例子中就犯了“沒明確變量類型”的錯(cuò)誤, 詳細(xì)可看看P103倒數(shù)第六行的“var ray = Camera.main.SceenPointToRay()touch.position;”
  •   紙質(zhì)不太好,印刷質(zhì)量一般。內(nèi)容基礎(chǔ),但講解不夠深入。
  •   內(nèi)容 大而全 內(nèi)容雖然多~但感覺 沒講重點(diǎn) 只是堆砌 代碼~
  •   很好,嶄新的書籍,不錯(cuò)
  •   作為入門的書籍挺好。
  •   書中腳本是Javascript的,不是C#
  •   不錯(cuò),正在學(xué)習(xí)中,哈哈哈
  •   因?yàn)闀墓獗P未附,聯(lián)系客服,迅速回應(yīng)并圓滿解決,很滿意。同時(shí)希望減少出錯(cuò),降低成本。
  •   書的內(nèi)容太簡(jiǎn)單了,一大堆的基礎(chǔ)介紹,再來兩個(gè)例子,它怎么就獨(dú)享兩項(xiàng)商業(yè)大獎(jiǎng)呢。有點(diǎn)被坑了的感覺?。。。。。。?/li>
  •   恩,這本書還不錯(cuò)哦喲
  •   Unity 3D游戲開發(fā)技術(shù)詳解與典型案例
  •   這書不咋地
 

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7