官术网_书友最值得收藏!

  • Unity游戲案例開發(fā)大全
  • 吳亞峰 杜化美 于復(fù)興編著
  • 738字
  • 2019-01-02 05:50:05

第1章 Unity 3D基礎(chǔ)以及開發(fā)環(huán)境的搭建

本章主要向讀者介紹Unity 3D的基礎(chǔ)知識(shí)以及Unity集成開發(fā)環(huán)境的安裝,讀者會(huì)對(duì)Unity 3D有一個(gè)大致的了解。通過本書案例的導(dǎo)入及運(yùn)行,讀者可以方便地將光盤中的各個(gè)項(xiàng)目案例導(dǎo)入到自己電腦上的Unity進(jìn)行效果預(yù)覽和其他操作。

1.1 Unity 3D基礎(chǔ)知識(shí)概覽

本節(jié)主要向讀者介紹Unity 3D的發(fā)展歷史以及其獨(dú)具特色的特點(diǎn),主要內(nèi)容包括Unity 3D的簡(jiǎn)介、Unity 3D廣闊的市場(chǎng)前景、Unity 3D的發(fā)展和Unity 3D的特點(diǎn)等。通過本節(jié)的學(xué)習(xí),讀者將對(duì)Unity 3D有一個(gè)基本的認(rèn)識(shí)。

1.1.1 初識(shí)Unity 3D

Unity 3D是由Unity Technologies開發(fā)的一個(gè)輕松創(chuàng)建三維視頻游戲、建筑可視化、實(shí)時(shí)三維動(dòng)畫等互動(dòng)內(nèi)容的、多平臺(tái)的綜合型游戲開發(fā)工具,是一個(gè)全面整合的專業(yè)游戲引擎。通過Unity簡(jiǎn)單的用戶界面,玩家可以完成任何工作。

Unity類似于Director、Blender Game Engine、Virtools和Torque Game Builder等以交互的圖形化開發(fā)環(huán)境為首要方式的3D游戲引擎軟件。內(nèi)置的NVIDIAPhysX物理引擎帶給玩家生活的互動(dòng)。實(shí)時(shí)三維圖形混合音頻流、視頻流。

其編輯器運(yùn)行在Windows和Mac OS X下,可發(fā)布游戲至Windows、Mac、Wii、iPhone和Android平臺(tái),也可以利用Unity Web Player插件發(fā)布網(wǎng)頁(yè)游戲,支持Mac和Windows的網(wǎng)頁(yè)瀏覽,并且Unity的網(wǎng)頁(yè)播放器也被Mac Widgets所支持。

1.1.2 Unity的誕生及發(fā)展

通過前面小節(jié)的學(xué)習(xí),相信讀者對(duì)Unity有了一個(gè)簡(jiǎn)單的認(rèn)識(shí)。Unity現(xiàn)在已經(jīng)是移動(dòng)游戲領(lǐng)域較為優(yōu)秀的游戲引擎,能從誕生到現(xiàn)在不到10年的時(shí)間取得如此成績(jī),Unity可謂生逢其時(shí)。而本節(jié)為了讓讀者對(duì)Unity有更進(jìn)一步的了解,將為讀者介紹Unity的發(fā)展史。

2005年6月,Unity 1.0發(fā)布。Unity 1.0是一個(gè)輕量級(jí)、可擴(kuò)展的依賴注入容器,有助于構(gòu)建松散耦合的系統(tǒng)。它支持構(gòu)造注入(Constructor Injection)、屬性/設(shè)定方法注入(Property/Setter Injection)和方法調(diào)用注入(Method Call Injection)。

2009年3月,Unity 2.5加入了對(duì)Windows的支持。Unity發(fā)展到2.5完全支持Windows Vista與Windows XP的全部功能和互操作性,而且Mac OS X中的Unity編輯器也已經(jīng)重建,在外觀和功能上都相互統(tǒng)一。Unity 2.5的優(yōu)點(diǎn)就是Unity 3D可以在任一平臺(tái)建立任何游戲,實(shí)現(xiàn)了真正的跨平臺(tái)。

2009年10月,Unity 2.6獨(dú)立版本開始免費(fèi)。Unity 2.6支持了許多外部版本控制系統(tǒng),例如Subversion、Perforce、Bazaar,或是其他的VCS系統(tǒng)等。除此之外,Unity 2.6與Visual Studio完整的一體化也增加了Unity自動(dòng)同步Visual Studio項(xiàng)目的源代碼,實(shí)現(xiàn)所有腳本的解決方案和智能配置。

2010年9月,Unity 3.0版本支持多平臺(tái)。新增加的功能有:方便編輯桌面左側(cè)的快速啟動(dòng)欄、增加支持Ubuntu 12.04、更改桌面主題和在dash中隱藏“可下載的軟件”類別等。

2012年2月,Unity Technologies發(fā)布Unity 3.5版本??v觀其發(fā)展歷程,Unity Technologies公司一直在快速?gòu)?qiáng)化Unity,Unity 3.5版本提供了大量的新增功能和改進(jìn)功能。所有使用Unity 3.0或更高版本的用戶均可免費(fèi)升級(jí)到Unity 3.5。

2012年11月,Unity Technologies公司正式推出Unity 4.0版本,新加入對(duì)DirectX 11的支持和全新的Mecanim動(dòng)畫工具,支持移動(dòng)平臺(tái)的動(dòng)態(tài)陰影,減少移動(dòng)平臺(tái)Mesh內(nèi)存消耗,支持動(dòng)態(tài)字體渲染,以及為用戶提供Linux及Adobe Flash Player的部署預(yù)覽功能。

2013年11月,Unity 4.3版本發(fā)布。同時(shí)Unity正式發(fā)布2D工具,標(biāo)志著Unity不再是單一的3D工具,而是真正地能夠同時(shí)支持二維和三維內(nèi)容的開發(fā)和發(fā)布。發(fā)布2D工具的預(yù)告已經(jīng)讓Unity開發(fā)者興奮不已,這也正是開發(fā)者長(zhǎng)久以來所期待的。

1.1.3 Unity 3D廣闊的市場(chǎng)前景

近幾年來,Android平臺(tái)游戲、iPhone平臺(tái)游戲以及Web網(wǎng)頁(yè)游戲發(fā)展迅猛,已然成為帶動(dòng)游戲發(fā)展的新生力量。遺憾的是目前除了少數(shù)的作品成功外,大部分的游戲都屬宣傳攻勢(shì)大于內(nèi)容品質(zhì)的平庸之作。

面對(duì)這種局面,3D游戲成為獨(dú)辟蹊徑的一種選擇,而為3D游戲研發(fā)提供強(qiáng)大技術(shù)支持的Unity 3D引擎,對(duì)DirectX和OpenGL擁有高度優(yōu)化的圖形渲染管道,以其創(chuàng)造高質(zhì)量的3D游戲和真實(shí)視覺效果的核心技術(shù),為開發(fā)3D游戲提供了強(qiáng)大的源動(dòng)力。

提示

Unity 3D游戲引擎后來居上,在2012年發(fā)行的幾款風(fēng)靡一時(shí)的iPhone和Android平臺(tái)上的游戲都選擇了這款游戲引擎,如《神廟逃亡2》、《王者之劍》、《武士2:復(fù)仇》等。

Unity 3D不僅在游戲領(lǐng)域里有廣闊的應(yīng)用,其還可以用于3D虛擬仿真、大型產(chǎn)品3D展示、3D虛擬展會(huì)、3D場(chǎng)景導(dǎo)航以及一些精密儀器使用方法的演示等,可謂領(lǐng)域非常廣泛。

Unity 3D游戲引擎技術(shù)研討會(huì)最早于2011年5月在韓國(guó)舉行。據(jù)悉,現(xiàn)在10種以上的新引擎開發(fā)都采用了Unity 3D游戲引擎技術(shù)。現(xiàn)已有部分開發(fā)商利用China Joy展會(huì)的契機(jī),展示了該引擎的運(yùn)行效果,目前已有不少?gòu)S商與開發(fā)商簽訂了提前預(yù)定引擎的協(xié)議。

提示

Unity引擎可以幫助開發(fā)人員制作出炫麗的3D效果,并實(shí)時(shí)生成查看,目前已推出了對(duì)應(yīng)iPhone、iPad、PC、Mac、Android、Flash Player、Wii、PS3、Xbox360等平臺(tái)的版本,促進(jìn)了游戲跨平臺(tái)的應(yīng)用。讀者要做的,只是在編輯器中選擇使用哪一個(gè)平臺(tái)來預(yù)覽游戲作品。

未來幾年必定是Unity 3D“大行其道”的時(shí)代,其開發(fā)群體的迅速擴(kuò)大、Web Player裝機(jī)率的快速上升使Unity 3D迅速爆發(fā)的時(shí)機(jī)已經(jīng)到來。在此引用業(yè)內(nèi)知名人士的一句話:“不要再對(duì)所謂的Flash 3D抱有什么希望,也不要再去花心思學(xué)習(xí)那些雜七雜八的Flash 3D插件,趕緊學(xué)習(xí)Unity 3D才是正經(jīng)?!?/p>

1.1.4 獨(dú)具特色的Unity 3D

通過前面兩個(gè)小節(jié)的學(xué)習(xí),相信讀者對(duì)Unity 3D有了一個(gè)基本的認(rèn)識(shí)。Unity在游戲開發(fā)領(lǐng)域用其獨(dú)特、強(qiáng)大的技術(shù)理念征服了全球眾多的業(yè)界公司以及游戲開發(fā)者。本小節(jié)將為讀者介紹Unity 3D的特點(diǎn),幫助讀者進(jìn)一步學(xué)習(xí)Unity 3D。

1.Unity 3D本身所具有的特點(diǎn)

綜合編輯

Unity簡(jiǎn)單的用戶界面是層級(jí)式的綜合開發(fā)環(huán)境,具備視覺化編輯、詳細(xì)的屬性編輯器和動(dòng)態(tài)的游戲預(yù)覽特性。由于其強(qiáng)大的綜合編輯特性,因此,Unity也被用來快速地制作游戲或者開發(fā)游戲原型,如圖1-1所示。

▲圖1-1 綜合編輯

圖形引擎

Unity的圖形引擎使用的是Direct 3D(Windows)、OpenGL(Mac,Windows)和自有的APIs(Wii),可以支持Bump mapping、Reflection mapping、Parallax mapping、Screen Space Ambient Occlusion、動(dòng)態(tài)陰影所使用的Shadow Map技術(shù)與Render-to-texutre和全屏Post Processing效果。

資源導(dǎo)入

項(xiàng)目中的資源會(huì)被自動(dòng)導(dǎo)入,并根據(jù)資源的改動(dòng)自動(dòng)更新。雖然很多主流的三維建模軟件為Unity所支持,不過對(duì)3ds Max、Maya、Blender、Cinema 4D和Cheetah3D的支持比較好,并支持一些其他的三維格式。

一鍵部署

Unity可開發(fā)微軟Microsoft Windows和Mac OS X的可執(zhí)行文件,在線內(nèi)容通過Unity Web Player插件支持Internet Explorer、Mozilla、Netscape、Opera和Camino、Mac OS X的Dashboard工具,但是Wii程序和iPhone應(yīng)用程序的開發(fā)需要用戶購(gòu)買額外的授權(quán),在價(jià)格上有所不同,如圖1-2所示。

▲圖1-2 一鍵部署

著色器(Shader)

Shader編寫使用ShaderLab語(yǔ)言,同時(shí)支持自有工作流中的編程方式或Cg.GLSL語(yǔ)言編寫的Shader。Shader對(duì)游戲畫面的控制力就好比在Photoshop中編輯數(shù)碼照片,在高手手里可以營(yíng)造出各種驚人的畫面效果。圖1-3所示為Unity經(jīng)典游戲《憤怒的機(jī)器人》場(chǎng)景中的Shader應(yīng)用效果。

▲圖1-3 游戲《憤怒的機(jī)器人》場(chǎng)景中的Shader應(yīng)用效果

一個(gè)Shader可以包含眾多變量及一個(gè)參數(shù)接口,允許Unity去判定參數(shù)是否為當(dāng)前所支持并適配最適合參數(shù),并選擇相應(yīng)的Shader類型以獲得廣大的兼容性。因此,Unity的著色器系統(tǒng)具有易用、靈活和高性能的特性。

地形編輯器

Unity內(nèi)建強(qiáng)大的地形編輯器,支持地形創(chuàng)建和樹木與植被貼片,還支持自動(dòng)的地形LOD,而且還支持水面特效,尤其是低端硬件亦可流暢運(yùn)行廣闊茂盛的植被景觀,還有Tree Create來編輯樹木的各部位細(xì)節(jié),如圖1-4和圖1-5所示。

▲圖1-4 地形1

▲圖1-5 地形2

聯(lián)網(wǎng)

現(xiàn)在大部分游戲都是聯(lián)網(wǎng)的,令人驚喜的是,Unity內(nèi)置了強(qiáng)大多人聯(lián)網(wǎng)游戲引擎,具有Unity自帶的客戶端和服務(wù)器端,省去了并發(fā)、多任務(wù)等一系列繁瑣而困難的操作,可以簡(jiǎn)單地完成所需的任務(wù)。其多人網(wǎng)絡(luò)連線采用Raknet,可以從單人游戲到全實(shí)時(shí)多人游戲。

物理特效

物理引擎是一個(gè)計(jì)算機(jī)程序模擬牛頓力學(xué)模型,使用質(zhì)量、速度、摩擦力和空氣阻力等變量。其可以用來預(yù)測(cè)各種不同情況下的效果。Unity內(nèi)置NVIDIA強(qiáng)大的PhysX物理引擎,可以方便、準(zhǔn)確地開發(fā)出所需要的物理特效。

PhysX可以由CPU計(jì)算,但其程序本身在設(shè)計(jì)上還可以調(diào)用獨(dú)立的浮點(diǎn)處理器(如GPU和PPU)來計(jì)算,也正因?yàn)槿绱?,它可以輕松完成像流體力學(xué)模擬那樣的大計(jì)算量的物理模擬計(jì)算。并且PhysX物理引擎還可以在包括Windows、Linux、Xbox360、Mac、Android等在內(nèi)的全平臺(tái)上運(yùn)行。

音頻和視頻

音效系統(tǒng)基于OpenAL程式庫(kù),可以播放Ogg Vorbis的壓縮音效,視頻播放采用Theora編碼,并支持實(shí)時(shí)三維圖形混合音頻流和視頻流。

OpenAL的主要功能是在來源物體、音效緩沖和收聽者中編碼。來源物體包含一個(gè)指向緩沖區(qū)的指標(biāo),聲音的速度、位置和方向,以及聲音強(qiáng)度。收聽者物體包含收聽者的速度、位置和方向,以及全部聲音的整體增益。緩沖里包含8位或16位元、單聲道或立體聲PCM格式的音效資料,表現(xiàn)引擎進(jìn)行所有必要的計(jì)算,如距離衰減、多普勒效應(yīng)等。

腳本

游戲腳本為基于Mono的Mono腳本,是一個(gè)基于.NET Framework的開源語(yǔ)言,因此,程序員可用JavaScript 、C#或Boo加以編寫,如圖1-6所示。

▲圖1-6 腳本

提示

由于JavaScript和C#腳本語(yǔ)言是目前Unity開發(fā)中比較流行的語(yǔ)言,同時(shí),考慮到腳本語(yǔ)言的通用性,因此,本書采用JavaScript和C#兩種腳本語(yǔ)言編寫腳本,給讀者帶來更多的選擇。

Unity資源服務(wù)器

Unity資源服務(wù)器具有一個(gè)支持各種游戲和腳本版本的控制方案,使用PostgreSql作為后端。其可以保證在開發(fā)過程中多人并行開發(fā),保證不同的開發(fā)人員使用不同版本的開發(fā)工具所編寫的腳本能夠順利地集成。

真實(shí)的光影效果

Unity提供了具有柔和陰影與lightmaps的高度完善的光影渲染系統(tǒng)。光照?qǐng)D(lightmap)是包含了視頻游戲中面的光照信息的一種三維引擎的光強(qiáng)數(shù)據(jù)。光照?qǐng)D是預(yù)先計(jì)算好的,而且要用在靜態(tài)目標(biāo)上。

說明

靜態(tài)目標(biāo)(static objects)在三維引擎里是區(qū)別于動(dòng)態(tài)目標(biāo)(dynamic object)的一種分類。

2.Unity 3D的跨平臺(tái)特性

Unity類似于Director、Blender Game Engine、Virtools或Torque Game Builder等以交互的圖形化開發(fā)環(huán)境為首要方式的軟件。其編輯器運(yùn)行在Windows和Mac OS X下,可發(fā)布游戲至Windows、Mac、Wii、iPhone和Android平臺(tái),也可以利用Unity Web Player插件發(fā)布網(wǎng)頁(yè)游戲,支持Mac和Windows的網(wǎng)頁(yè)瀏覽。

現(xiàn)在市面上已經(jīng)推出了很多由Unity開發(fā)的基于Android平臺(tái)、iPhone平臺(tái)以及大型的3D網(wǎng)頁(yè)游戲,這些游戲都得到了很高評(píng)價(jià)。接下來將分別為讀者介紹這三類游戲。

基于Android平臺(tái)的游戲

Unity可以基于Android平臺(tái)進(jìn)行游戲開發(fā),由于其自身存在優(yōu)勢(shì),因此開發(fā)的游戲也讓人賞心悅目,贊不絕口。

例如,《搗蛋豬》是Rovio Entertainment繼《憤怒的小鳥》之后的又一款力作,如圖1-7所示;由天美藝游工作室開發(fā)的《天天飛車》,如圖1-8所示;由GluMobile開發(fā)的《血之榮耀》,如圖1-9所示;是由藍(lán)港在線開發(fā)的《王者之劍》,如圖1-10所示。

▲圖1-7 《搗蛋豬》

▲圖1-8 《天天飛車》

▲圖1-9 《血之榮耀》

▲圖1-10 《王者之劍》

基于iPhone平臺(tái)的游戲

Unity依然可以基于iPhone平臺(tái)進(jìn)行游戲開發(fā),由于其自身存在的優(yōu)勢(shì),可以制作出絢麗多彩的iPhone平臺(tái)游戲。

例如,由Imangi Studios開發(fā)的跑酷類視頻游戲《神廟逃亡2》,如圖1-11所示;是由Defiant Development Pty.Ltd開發(fā)的《滑雪大冒險(xiǎn)》,如圖1-12所示;是由YANSHU SUN開發(fā)的《崩壞學(xué)園》,如圖1-13所示;是由Crescent Moon Games LLC開發(fā)的Slingshot Racing,如圖1-14所示。

▲圖1-11 《神廟逃亡2》

▲圖1-12 《滑雪大冒險(xiǎn)》

基于Web的大型3D網(wǎng)頁(yè)游戲

同樣Unity也可以開發(fā)基于Web的大型3D網(wǎng)頁(yè)游戲,網(wǎng)頁(yè)類游戲不用下載客戶端,也是近幾年比較流行的一種游戲類型,市面上已經(jīng)推出了很多這樣的3D網(wǎng)頁(yè)游戲。

▲圖1-13 《崩壞學(xué)園》

▲圖1-14 Slingshot Racing

例如,《新仙劍奇?zhèn)b傳online》是駿夢(mèng)游戲的最新力作,如圖1-15所示;是由上海友齊開發(fā)的《坦克英雄》,如圖1-16所示;《絕代雙驕》是開發(fā)商昆侖在線開發(fā)的一款全新網(wǎng)頁(yè)游戲,如圖1-17所示;《蒸汽之城》是由廈門夢(mèng)加網(wǎng)絡(luò)科技有限公司開發(fā)的一款3D網(wǎng)頁(yè)MMORPG,如圖1-18所示。

▲圖1-15 《新仙劍奇?zhèn)b傳online》

▲圖1-16 《坦克英雄》

▲圖1-17 《絕代雙驕》

▲圖1-18 《蒸汽之城》

主站蜘蛛池模板: 马关县| 新野县| 潞城市| 江城| 西华县| 北川| 镶黄旗| 永平县| 沁源县| 南昌县| 丰都县| 富蕴县| 安福县| 南江县| 大厂| 酉阳| 万荣县| 乃东县| 绍兴县| 娄烦县| 庄河市| 雅江县| 无极县| 夏河县| 罗江县| 濮阳县| 东丽区| 格尔木市| 建瓯市| 娱乐| 宝丰县| 石泉县| 门源| 韶关市| 赤水市| 攀枝花市| 河池市| 石阡县| 都江堰市| 咸阳市| 额敏县|