1.寫在前面
Unity3D是由Unity Technologies開發的一個讓你輕松創建諸如三維視頻游戲、建築可視化、實時三維動畫等類型互動內容的多平台的綜合型游戲開發工具,是一個全面整合的專業游戲引擎。Unity類似於Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的圖型化開發環境為首要方式的軟件其編輯器運行在Windows 和Mac OS X下,可發布游戲至Windows、Mac、Wii、iPhone、Windows phone 8和Android平台。也可以利用Unity web player插件發布網頁游戲,支持Mac 和Windows的網頁瀏覽。它的網頁播放器也被Mac widgets所支持。
Unity3D,簡稱U3D,是德國UnityTechnologies公司所開發的中端游戲引擎。
U3D相對於虛幻3引擎,只能算是小弟級的游戲引擎,但是它在游戲制作上的高效率,以及對應多平台的游戲開發,使得它在國外的獨立游戲制作小組中具有很高的人氣。
U3D的免費版和專業版的區別主要在於畫面濾鏡和底層類庫的使用權限,U3D免費版也是能制作完整游戲的,並且可以發布PC,MAC和Web平台的游戲,移動平台(IOS,Android)和次世代游戲機平台(PS3,XBOX360,Wii)則需要另外的授權。
*Unity3D的開發公司和Adobe公司合作之后,從3.5版本起,U3D增加了Flash的發布功能(需另外授權)。
U3D借鑒了虛幻引擎和一些大型三維動畫軟件的操作理念,因此很容易入門,並且它和其他軟件的協作會很便捷。U3D的軟件界面布局很完善,用戶可以快速的選擇一個適合自己開發習慣的窗口排序。



* U3D目前還無法改變模型的軸心點,因此需要在三維軟件中事先完成設置。

*U3D雖然單位是米,但是它默認的ScaleFactor參數是0.01,也就是對應的是maya中厘米;如果在Maya中使用了米為單位,導入U3D中時,還需要手動將ScaleFactor設置為1。

*U3D3.X還無法對多個物體同時賦予相同的材質,因此在導入U3D前,我們應該在Maya中將材質分類好;還要注意模型面的法線朝向,盡量不要出現反面。


Skybox天空盒的創建。游戲中的天空,就是一個包裹場景的幾何體貼圖。對於游戲引擎,是六張覆蓋立方體六個面的無縫天空紋理。U3D的天空盒需要和攝像機或者在渲染設置中進行關聯。
*渲染設置中加入天空材質,可以直接在場景中看到效果;攝像機中連接天空盒,只有執行游戲渲染時,才會在特定攝像機中看到。
U3D中有四種類型的燈光:PointLight,Spotlight,DirectionalLight,AreaLight,AmbientLight。其中,AmbientLight不是獨立的燈光元素,而是位於渲染設置中,可對場景中的背光進行色彩調節(通常是冷色系),用於模擬環境反射光(多為天光)。方向光常用於模擬陽光,燈光的所在位置不影響照明效果,因為它是基於朝向的。
目前U3D的光照系統和場景構建元素還沒有UDK(虛幻引擎開發套件)那么豐富,因此圖形的渲染效果上自然沒有UDK出眾,不過它已經足夠用來開發畫面強勁的次世代游戲,移動平台和網絡游戲更不在話下。
renderPass渲染通道。在U3D中有三種重要的渲染通道,都是基於燈光材質產生的。目前U3D還沒有實現類似maya或者UDK那樣可對材質着色通道進行紋理動畫連接的功能,因此用戶需要自行編寫材質,這在一定程度上限制了創意的發揮。
lightmass質量的設置直接決定着游戲品質。場景中的燈光和陰影是實時計算的,這不會應用於游戲中,游戲會通過燈光貼圖和陰影貼圖來提高畫面的運行效率。對於場景中靜止的物體,我們可以采用各種全局光照明來將燈光效果烘焙到模型對應的貼圖中,這有兩種方法:一種是在繪制模型貼圖時,通過三維軟件的全局光系統(如FG最終聚集,GI全局照明),將燈光效果烘焙;另外就是直接在游戲引擎中烘焙(依賴於引擎的功能)。U3D的燈光系統並沒有UDK那么強悍,尤其在全局照明效果上。
OcclusionCulling是U3D中用於優化場景顯示效率的一個功能,可以很大的降低游戲對系統資源的消耗。它的原理是不繪制在攝像機范圍內看不到的被遮擋物體。
*U3D可以針對web和移動平台做到很大的資源優化,這點是UDK不能比的。
U3D支持多種語言編寫腳本:C#,JavaScript,Boo。JavaScript腳本較容易上手,常作為初學者或JavaScript編程人員的首選,不過從長遠的擴展來看,C#則是用戶最佳的選擇方案。當然,你也可以在一個游戲設計過程中,同時使用幾種語言的腳本進行組合,因為U3D最終都會將這些語言轉為它內置的編譯語言。
*JavaScript不是Java。
【總結】
Unity3D具有廣闊的發展前景:通用的軟件操作規范,高效的開發速度,多平台的支持,以及廣泛的編程語言的兼容。