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

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

內容概要

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

作者簡介

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

書籍目錄

第1章 Unity3D基礎以及開發(fā)環(huán)境的搭建 1 1.1 Unity3D基礎知識概覽 1 1.1.1 初識Unity3D 1 1.1.2 Unity的誕生及發(fā)展 1 1.1.3 Unity3D廣闊的市場前景 2 1.1.4 獨具特色的Unity3D 2 1.2 開發(fā)環(huán)境的搭建 7 1.2.1 Unity集成開發(fā)環(huán)境的安裝 7 1.2.2 目標平臺的SDK與Unity3D的集成 11 1.3 第一個Unity3D程序 16 1.4 本章小結 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 標題欄 24 2.1.3 菜單欄 25 2.1.4 工具欄 26 2.1.5 場景設計面板 26 2.1.6 游戲預覽面板 31 2.1.7 游戲組成對象列表 32 2.1.8 項目資源列表 34 2.1.9 屬性查看器 35 2.1.10 狀態(tài)欄與控制臺 36 2.1.11 動畫視圖 37 2.2 菜單欄 37 2.2.1 文件(File) 37 2.2.2 編輯(Edit) 40 2.2.3 資源(Assets) 46 2.2.4 游戲對象(GameObject) 56 2.2.5 組件(Component) 65 2.2.6 地形(Terrain) 68 2.2.7 窗口(Window) 70 2.2.8 幫助(Help) 75 2.3 本章小結 79 第3章 Unity3D的腳本概述 80 3.1 Unity腳本概述 80 3.2 Unity中專用JavaScript與通用JavaScript的區(qū)別 80 3.2.1 在運行過程中性能的差異 80 3.2.2 在語法上的區(qū)別 81 3.3 Unity的基本語法 83 3.3.1 常用操作 83 3.3.2 記錄時間 84 3.3.3 訪問其他組件 85 3.3.4 訪問其他游戲對象 86 3.3.5 向量 89 3.3.6 成員變量和全局變量 89 3.3.7 實例化 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 一個簡單的案例 98 3.4.1 球轉場景實現(xiàn) 98 3.4.2 球走場景實現(xiàn) 104 3.5 本章小結 108 第4章 Unity3D的常用組件及對象 109 4.1 圖形用戶界面組件 109 4.1.1 圖形用戶界面組件的變量 109 4.1.2 圖形用戶界面的具體組件 118 4.1.3 圖形用戶界面組件綜合案例 150 4.2 預制件prefab資源的應用 154 4.2.1 預制件prefab資源的創(chuàng)建 155 4.2.2 通過prefab資源進而實例化對象 156 4.3 常用的輸入對象 158 4.3.1 Touch輸入對象 158 4.3.2 Input輸入對象 159 4.4 銷毀相關方法 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 本章小結 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 物理材質 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 關節(jié) 201 5.4.1 鉸鏈關節(jié) 201 5.4.2 固定關節(jié) 206 5.4.3 彈簧關節(jié) 207 5.4.4 角色關節(jié) 209 5.4.5 可配置關節(jié) 211 5.4.6 關節(jié)綜合案例——機械手 216 5.5 游戲實例——摧毀立方體 223 5.6 本章小結 231 第6章 3D游戲開發(fā)的常用技術 232 6.1 天空盒的應用 232 6.1.1 Unity內置的天空盒資源 233 6.1.2 開發(fā)實際需要的天空盒 235 6.2 虛擬按鈕與搖桿使用 237 6.2.1 Unity內置的虛擬按鈕與搖桿資源 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 簡單的聲音控制案例 250 6.4 光源 252 6.4.1 點光源(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拾取技術 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 角色動畫 272 6.7.1 導入角色動畫 273 6.7.2 動畫腳本 274 6.8 角色控制器 275 6.8.1 添加角色控制器 275 6.8.2 角色控制器的使用 276 6.9 本章小結 276 第7章 著色器——Shaders 277 7.1 著色器概述 277 7.2 ShaderLab語法基礎 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 顏色、材質和光照 283 7.3.2 剪裁和深度測試 285 7.3.3 紋理處理 287 7.3.4 霧 289 7.3.5 Alpha測試 289 7.3.6 混合 291 7.3.7 通道標簽 293 7.3.8 綁定通道 293 7.4 表面著色器和頂點片元著色器 294 7.4.1 表面著色器 294 7.4.2 頂點片元著色器 300 7.5 本章小結 303 第8章 雜項 304 8.1 PlayerPrefs類 304 8.2 網(wǎng)絡——Network 306 8.2.1 消息發(fā)送——MessagesSent 306 8.2.2 類變量——ClassVariables 310 8.2.3 類方法——ClassFunctions 317 8.3 加速度傳感器 326 8.4 本章小結 329 第9章 綜合案例——3D保齡球 330 9.1 游戲背景以及功能概述 330 9.1.1 背景概述 330 9.1.2 功能簡介 330 9.2 游戲的策劃及準備工作 332 9.2.1 游戲的策劃 332 9.2.2 使用Unity開發(fā)游戲前的準備工作 333 9.3 游戲的架構 336 9.3.1 各個場景的簡要介紹 336 9.3.2 游戲架構簡介 337 9.4 主菜單界面 338 9.5 游戲界面 346 9.5.1 場景搭建 346 9.5.2 保齡球瓶及其腳本 350 9.5.3 初始化與得分計算 354 9.5.4 瓶子碰撞體的組裝 361 9.5.5 得分的繪制,儲存和返回鍵的開發(fā) 365 9.5.6 瓶子下降和下降臺控制 368 9.6 設置界面 370 9.7 統(tǒng)計界面 373 9.8 幫助界面 379 9.9 游戲結束界面 382 9.10 游戲的優(yōu)化與改進 385 第10章 綜合案例——火力籃球 386 10.1 游戲背景以及功能概述 386 10.1.1 游戲背景概述 386 10.1.2 功能簡介 386 10.2 游戲的策劃及準備工作 388 10.2.1 游戲的策劃 388 10.2.2 使用Unity開發(fā)游戲前的準備工作 388 10.3 游戲的架構 391 10.3.1 各個場景的簡要介紹 391 10.3.2 游戲架構簡介 392 10.4 主菜單界面 393 10.5 游戲界面 398 10.5.1 場景搭建 399 10.5.2 籃球及其腳本 406 10.5.3 計分觸發(fā)器開發(fā) 410 10.5.4 主攝像機設置以及腳本開發(fā) 414 10.6 設置界面 416 10.7 關于界面 418 10.8 幫助界面 420 10.8.1 場景搭建 420 10.8.2 籃球腳本開發(fā) 421 10.8.3 計分觸發(fā)器的腳本開發(fā) 423 10.8.4 主攝像機腳本開發(fā) 425 10.9 記錄界面 427 10.10 游戲結束界面 433 10.11 游戲的優(yōu)化與改進 434

章節(jié)摘錄

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

媒體關注與評論

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

編輯推薦

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

名人推薦

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

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


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


用戶評論 (總計16條)

 
 

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

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7