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

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

本節(jié)主要向讀者介紹Unity 3D的相關(guān)知識(shí),主要內(nèi)容包括Unity 3D的簡(jiǎn)介、Unity 3D的發(fā)展和Unity 3D的特點(diǎn)等。通過(guò)本節(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類似于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è)瀏覽,并且Unity的網(wǎng)頁(yè)播放器也被Mac Widgets所支持。

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

通過(guò)前面小節(jié)的學(xué)習(xí),相信讀者對(duì)Unity有了一個(gè)簡(jiǎn)單的認(rèn)識(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。縱觀其發(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ì)DriectX 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ù)覽功能。

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

近幾年來(lái),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引擎,以其創(chuàng)造高質(zhì)量的3D游戲和真實(shí)視覺(jué)效果的核心技術(shù),為開發(fā)3D游戲提供了強(qiáng)大的源動(dòng)力。

提示

Unity 3D游戲引擎后來(lái)居上,在2012年發(fā)行的幾款風(fēng)靡一時(shí)的 iPhone和Android平臺(tái)上的游戲都選擇了這款游戲引擎,如《神廟逃亡2》、《滑雪大冒險(xiǎn)》、《暗影之槍》等。

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)來(lái)預(yù)覽游戲作品。

未來(lái)幾年內(nèi)必定是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)。”

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

通過(guò)前面兩個(gè)小節(jié)的學(xué)習(xí),相信讀者對(duì)Unity 3D有了一個(gè)基本的認(rèn)識(shí),本小節(jié)將為讀者介紹Unity 3D的特點(diǎn),幫助讀者進(jìn)一步學(xué)習(xí)Unity 3D。

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

● 綜合編輯

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

▲圖1-1 綜合編輯

● 圖形引擎

Unity的圖形引擎使用的是Direct3D(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所支持,不過(guò)對(duì)于3ds Max、Maya、Blender、Cinema 4D和Cheetah3D的支持比較好,并支持一些其他的三維格式。

● 一鍵部署

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

▲圖1-2 一鍵部署

● 著色器(shaders)

shaders編寫使用ShaderLab語(yǔ)言,同時(shí)支持自有工作流中的編程方式或Cg.GLSL語(yǔ)言編寫的shader。

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

● 地形編輯器

Unity 內(nèi)建強(qiáng)大的地形編輯器,支持地形創(chuàng)建和樹木與植被貼片,而且還支持水面特效,尤其是低端硬件亦可流暢運(yùn)行廣闊茂盛的植被景觀,如圖1-3和圖1-4所示。

▲圖1-3 地形 1

▲圖1-4 地形 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ì)量、速度、摩擦力和空氣阻力等變量。其可以用來(lái)預(yù)測(cè)各種不同情況下的效果。Unity內(nèi)置NVIDIA強(qiáng)大的PhysX物理引擎,可以方便、準(zhǔn)確地開發(fā)出所需要的物理特效。

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

● 音頻和視頻

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

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

● 腳本

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

提示

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

● Unity資源服務(wù)器

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

▲圖1-5 腳本

● 真實(shí)的光影效果

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

說(shuō)明

靜態(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à)。接下來(lái)將分別為讀者介紹這3類游戲。

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

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

例如,《搗蛋豬》是Rovio Entertainment繼《憤怒的小鳥》之后的又一款力作,如圖 1-6所示;由Madfinger Games開發(fā)的《暗影之槍》,如圖1-7所示;由 Infinite Dreams開發(fā)的 Jelly Defense,如圖 1-8所示;由MADFINGER Games開發(fā)的Samurai II: Vengeance,如圖 1-9所示。

▲圖1-6 《搗蛋豬》

▲圖1-7 暗影之槍

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

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

▲圖1-8 JellyDefense

▲圖1-9 SamuraiⅡ:Vengeance

例如,由 Imangi Studios開發(fā)的跑酷類視頻游戲《神廟逃亡 2》,如圖 1-10所示;由Defiant Development Pty.Ltd開發(fā)的Ski Safari,如圖1-11所示;由NaturalMotion Games Limited開發(fā)的CSR Racing,如圖1-12所示;由Crescent Moon Games LLC開發(fā)的Slingshot Racing,如圖1-13所示。

▲圖1-10 神廟逃亡 2

▲圖1-11 Ski Safari

▲圖1-12 CSR Racing

▲圖1-13 Slingshot Racing

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

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

例如《胸懷三國(guó)志》是Ndoors公司的最新力作,如圖 1-14所示;由Roadhouse Interactive開發(fā)的MechWarrior Tactics,如圖1-15所示;《木乃伊OL》是由開發(fā)商Bigpiont開發(fā)的一款全新網(wǎng)頁(yè)游戲,如圖1-16示;《蒸汽之城》是廈門夢(mèng)加網(wǎng)絡(luò)科技有限公司開發(fā)的一款3D網(wǎng)頁(yè)MMORPG,如圖1-17所示。

▲圖1-14 《胸懷三國(guó)志》

▲圖1-15 MechWarrior Tactics

Unity 3D基礎(chǔ)知識(shí)到這里介紹完畢,接下來(lái)將詳細(xì)介紹Unity中開發(fā)環(huán)境的搭建,這是進(jìn)行Unity 3D開發(fā)的第一步。

▲圖1-16《木乃伊OL》

▲圖1-17 《蒸汽之城》

主站蜘蛛池模板: 惠东县| 蒙阴县| 康平县| 万年县| 曲阳县| 图们市| 汕头市| 于田县| 舒兰市| 辽中县| 金山区| 宜黄县| 江永县| 宜州市| 万宁市| 开封市| 丹凤县| 承德市| 绍兴市| 苏尼特左旗| 砀山县| 沧州市| 新和县| 南阳市| 循化| 山阴县| 正宁县| 唐河县| 乐昌市| 潞城市| 郯城县| 彭山县| 鹤岗市| 阳山县| 赞皇县| 云霄县| 城口县| 丰宁| 白城市| 吴江市| 桐柏县|