Unity3D幾乎是市面上最流行的游戲開發引擎,由Unity Technology(以下簡稱UT)公司開發,可用于Windows和Mac OS X系統(Linux系統實驗版已發布)。最重要的是,它幾乎可以導出到任何平臺。那么Unity3D游戲開發引擎跨平臺怎么實現的呢?
1.關于圖形
Unity 支持的圖形 API 有 OpenGL、OpenGL ES、WebGL、Metal 和 DirectX,它們分別對應不同的平臺。
OpenGL被廣泛使用,一些iOS設備、Mac OS X和Linux,甚至Windows都使用OpenGL。
OpenGL ES 兼容手機設置,支持大部分 Android 和部分 iOS 設備。
WebGL 是一個基于瀏覽器圖形運行應用程序和游戲的新平臺,無需安裝 Flash 或 Unity WebPlayer 等插件。
Metal 是 Apple 的新圖形 API,與最新的 iOS 設備和加州計算機兼容。
DirectX 是微軟自制的圖形 API 解決方案,兼容 Windows、Windows Phone 和 Xbox。
雖然 UT 開發人員在圖形處理上也花費了大量時間,但他們大部分時間都花在將這些工具集成到引擎中,而不是自己編寫圖形 API。
2.關于物理學
在物理方面,它比圖形簡單得多,Unity 始終堅持使用一種工具:Nvidia 的 PhysX,它支持 Unity 導出到的所有平臺。可以這么說,它是市場上最好的物理引擎之一,自從它的第一代產品 Novodex 甚至不是 Nvidia 的產品以來,它就一直受到信任并且表現非常出色。主要原因是一個引擎方便處理所有平臺的物理,并且游戲在支持的設備中的碰撞和移動行為是一致的,不會因為設備而導致游戲不平衡。
3.關于照明
Unity 的光照也依賴于外部工具,包括烘焙和實時光照。 Unity5 之前使用 Autodesk 的 Beast 作為烘焙光照的工具。 Unity5.x 使用 Geomeric 的 Enlighten 進行烘焙和實時光照。
4.關于網絡
UT于2014年發布了其自制的聯網多人解決方案UNET。之前有一些常用的網絡解決方案,最著名的是Photon。而UNET由兩部分組成:網絡API(高級和低級API)和付費多人服務。由于這是一個內部項目,UT 必須將代碼移植到所有支持的平臺上,就像上面的圖形、物理和照明一樣,每個平臺都是不同的。
5.關于腳本
腳本可能是每個人最關心的部分,因為使用引擎的目的是不必擔心圖形或底層物理。 Unity 支持 C# 和 Unity 腳本,無需任何轉換工具即可將游戲導出到上述任何平臺。
查看 Xamarin 說明:
用 C# 編寫應用程序并直接從 C# 調用任何本機平臺的 API。 Xamarin 編譯器捆綁 .NET 運行時并輸出本機 ARM 可執行文件,打包為 iOS 或 Android 應用程序。
那么Mono開發的應用是綁定到整個框架的嗎?當然不是,框架中沒有用到的類在鏈接時就被淘汰掉了。只有使用過的部件才會被打包到最終的應用程序中。至此,Unity的跨平臺原理基本講完了,Mono是主要貢獻者。順便說一句,Unity 最初推出 IL2CPP 是為了取代 Mono 作為腳本后端,但由于它的 bug 太多以及導出的 C++ 文件很大,一直受到開發人員的批評。相信IL2CPP短時間內要完全取代Mono并不容易。
希望以上內容對您學習Unity3D開發有所幫助!千鋒教育擁有完整的移動Unity3D開發課程體系,歡迎大家來免費試聽。更多關于unity培訓的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項目實操的話可以點擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。