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

1.1 Unity 3D基礎知識概覽

本節主要向讀者介紹Unity 3D的相關知識,主要內容包括Unity 3D的簡介、Unity 3D的發展和Unity 3D的特點等。通過本節的學習,讀者將對Unity 3D有一個基本的認識。

1.1.1 初識Unity 3D

Unity 3D是由Unity Technologies開發的一個輕松創建三維視頻游戲、建筑可視化、實時三維動畫等互動內容的、多平臺的綜合型游戲開發工具,是一個全面整合的專業游戲引擎。

Unity類似于Director、Blender Game Engine、Virtools或Torque Game Builder等利用交互的圖形化開發環境為首要方式的軟件。

其編輯器運行在Windows和Mac OS X下,可發布游戲至Windows、Mac、Wii、iPhone和Android平臺,也可以利用Unity Web Player插件發布網頁游戲,支持Mac和Windows的網頁瀏覽,并且Unity的網頁播放器也被Mac Widgets所支持。

1.1.2 Unity的誕生及發展

通過前面小節的學習,相信讀者對Unity有了一個簡單的認識。而本小節為了讓讀者對Unity有更進一步的了解,將為讀者介紹Unity的發展史。

● 2005年6月,Unity 1.0發布。Unity 1.0是一個輕量級、可擴展的依賴注入容器,有助于構建松散耦合的系統。它支持構造子注入(Constructor Injection)、屬性 /設值方法注入(Property/Setter Injection)和方法調用注入(Method Call Injection)。

● 2009年3月,Unity 2.5加入了對Windows的支持。Unity發展到2.5完全支持Windows Vista與Windows XP的全部功能和互操作性,而且Mac OS X中的Unity編輯器也已經重建,在外觀和功能上都相互統一。Unity 2.5的優點就是Unity 3D可以在任一平臺建立任何游戲,實現了真正的跨平臺。

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

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

● 2012年2月,Unity Technologies發布Unity 3.5。縱觀其發展歷程,Unity Technologies公司一直在快速強化Unity,Unity 3.5版提供了大量的新增功能和改進功能。所有使用Unity 3.0或更高版本的用戶均可免費升級到Unity 3.5。

● 2012年11月,Unity Technologies公司正式推出Unity 4.0版本,新加入對DriectX 11的支持和全新的Mecanim動畫工具,支持移動平臺的動態陰影,減少移動平臺Mesh內存消耗,支持動態字體渲染,以及為用戶提供Linux及Adobe Flash Player的部署預覽功能。

1.1.3 Unity 3D廣闊的市場前景

近幾年來,Android平臺游戲、iPhone平臺游戲以及Web的網頁游戲發展迅猛,已然成為帶動游戲發展的新生力量。遺憾的是目前除了少數的作品成功外,大部分的游戲都屬宣傳攻勢大于內容品質的平庸之作。

面對這種局面,3D 游戲成為獨辟蹊徑的一種選擇,而為 3D 游戲研發提供強大技術支持的Unity 3D引擎,以其創造高質量的3D游戲和真實視覺效果的核心技術,為開發3D游戲提供了強大的源動力。

提示

Unity 3D游戲引擎后來居上,在2012年發行的幾款風靡一時的 iPhone和Android平臺上的游戲都選擇了這款游戲引擎,如《神廟逃亡2》、《滑雪大冒險》、《暗影之槍》等。

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

Unity 3D游戲引擎技術研討會最早于 2011年5月在韓國舉行。據悉,現在10種以上的新引擎開發,都是采用了Unity 3D游戲引擎技術。現已有部分開發商利用China Joy展會的契機,展示了該引擎的運行效果,目前已有不少廠商與開發商簽訂了提前預定引擎的協議。

提示

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

未來幾年內必定是Unity 3D大行其道的時代,因其開發群體的迅速擴大,Web Player裝機率的快速上升,使Unity 3D迅速爆發的時機已經到了。

在此引用業內知名人士的一句話:“不要再對所謂的 Flash 3D抱有什么希望,也不要再去花心思學習那些雜七雜八的Flash 3D插件,趕緊學習Unity 3D才是正經。”

1.1.4 獨具特色的Unity 3D

通過前面兩個小節的學習,相信讀者對Unity 3D有了一個基本的認識,本小節將為讀者介紹Unity 3D的特點,幫助讀者進一步學習Unity 3D。

1.Unity 3D本身所具有的特點

● 綜合編輯

Unity 簡單的用戶界面是層級式的綜合開發環境,具備視覺化編輯、詳細的屬性編輯器和動態的游戲預覽特性。由于其強大的綜合編輯特性,因此,Unity 也被用來快速地制作游戲或者開發游戲原型,如圖1-1所示。

▲圖1-1 綜合編輯

● 圖形引擎

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

● 資源導入

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

● 一鍵部署

Unity可開發微軟Microsoft Windows和Mac OS X 的可執行文件,在線內容通過Unity Web Player插件支持 Internet Explorer、Firefox、Safari、Mozilla、Netscape、Opera和 Camino、Mac OS X的Dashboard工具,但是Wii程序和iPhone應用程序的開發需要用戶購買額外的授權,在價格上有所不同,如圖1-2所示。

▲圖1-2 一鍵部署

● 著色器(shaders)

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

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

● 地形編輯器

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

▲圖1-3 地形 1

▲圖1-4 地形 2

● 聯網

現在大部分的游戲都是聯網的,令人驚喜的是,Unity 內置了強大多人聯網游戲引擎,具有Unity 自帶的客戶端和服務器端,省去了并發、多任務等一系列繁瑣而困難的操作,可以簡單地完成所需的任務。其多人網絡連線采用Raknet,可以從單人游戲到全實時多人游戲。

● 物理特效

物理引擎是一個計算機程序模擬牛頓力學模型,使用質量、速度、摩擦力和空氣阻力等變量。其可以用來預測各種不同情況下的效果。Unity內置NVIDIA強大的PhysX物理引擎,可以方便、準確地開發出所需要的物理特效。

PhysX可以由CPU計算,但其程序本身在設計上還可以調用獨立的浮點處理器(如GPU和PPU)來計算,也正因為如此,它可以輕松完成像流體力學模擬那樣的大計算量的物理模擬計算。并且PhysX物理引擎還可以在包括Windows、Linux、Xbox360、Playstation3、Mac、Android 等在內的全平臺上運行。

● 音頻和視頻

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

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

● 腳本

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

提示

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

● Unity資源服務器

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

▲圖1-5 腳本

● 真實的光影效果

Unity 提供了具有柔和陰影與 lightmaps 的高度完善的光影渲染系統。光照圖(lightmap)是包含了視頻游戲中面的光照信息的一種三維引擎的光強數據。光照圖是預先計算好的,而且要用在靜態目標上。

說明

靜態目標 static objects在三維引擎里是區別于動態目標 dynamic object的一種分類。

2.Unity 3D的跨平臺特性

Unity類似于Director、Blender game engine、Virtools或Torque Game Builder等利用交互的圖形化開發環境為首要方式的軟件。其編輯器運行在 Windows 和 Mac OS X 下,可發布游戲至Windows、Mac、Wii、iPhone和Android平臺,也可以利用Unity Web Player插件發布網頁游戲,支持Mac 和Windows的網頁瀏覽。

現在市面上已經推出了很多由Unity開發的基于Android平臺、iPhone平臺以及大型的3D網頁游戲,這些游戲都得到了很高評價。接下來將分別為讀者介紹這3類游戲。

● 基于Android平臺的游戲

Unity可以基于Android平臺進行游戲開發,由于其自身存在的優勢,因此開發的游戲也讓人賞心悅目,贊不絕口。

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

▲圖1-6 《搗蛋豬》

▲圖1-7 暗影之槍

● 基于iPhone平臺的游戲

Unity依然可以基于iPhone平臺進行游戲開發,由于其自身存在的優勢,可以制作出絢麗多彩的iPhone平臺游戲。

▲圖1-8 JellyDefense

▲圖1-9 SamuraiⅡ:Vengeance

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

▲圖1-10 神廟逃亡 2

▲圖1-11 Ski Safari

▲圖1-12 CSR Racing

▲圖1-13 Slingshot Racing

● 基于Web的大型3D網頁游戲

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

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

▲圖1-14 《胸懷三國志》

▲圖1-15 MechWarrior Tactics

Unity 3D基礎知識到這里介紹完畢,接下來將詳細介紹Unity中開發環境的搭建,這是進行Unity 3D開發的第一步。

▲圖1-16《木乃伊OL》

▲圖1-17 《蒸汽之城》

主站蜘蛛池模板: 玛纳斯县| 盖州市| 吉安市| 青田县| 剑阁县| 天津市| 定襄县| 铁岭市| 烟台市| 青神县| 三原县| 宁强县| 遂宁市| 分宜县| 固始县| 云浮市| 营山县| 天门市| 和平县| 沅江市| 莱芜市| 永春县| 海盐县| 天祝| 静宁县| 灵璧县| 方山县| 潮州市| 武强县| 景洪市| 友谊县| 尤溪县| 东源县| 德江县| 焉耆| 安塞县| 沁源县| 闽侯县| 柞水县| 长治县| 桐柏县|