一、可定制的IDE環境
U3D這種ALL IN ONE的設計思路,我在一個叫神咒的代碼中見到過。 集所有編輯器于一身。 雖然神咒的編輯器不能自由擴充,但由于是公司内部的引擎,是以,它的使用,也很友善。 比如,在場景中突然想要對一個模型的材質進行編輯,則選中此模型,右鍵,彈出材質編輯器即可。 U3D的元件式思路,将這種關系變得更加緊密。 你都感覺不到自己在使用一個材質編輯器。 你會覺得,你是在操作這個模型本身。 它的材質,它的碰撞器,它的對象結構等等。
回想一開始進入遊戲行業的時候,天天啃着代碼。 當時覺得代碼就是一切,各種認為很牛X的代碼,都忍不住讀上一番。 而随着時間的推移,特别是經過項目的洗禮後。 突然發現編輯器是多麼的重要。 就我做的第一個頁遊來說,起手前兩個星期,我們就做了動畫編輯器,場景編輯器。而最終證明,因為這兩個簡陋的編輯器,使我們後面的工作變得更加容易。
是以,一個好的引擎,必定得先有一個功能完備的編輯器。
二、基于Mono的開發腳本
C/C++無疑是圖形界的寵兒,也沒有人想過用另一種語言來替代它。即使是U3D,亦是如此。 但是,早期使用C/C++編寫的引擎,都理所當然地使用C/C++來作為上層邏輯的開發。 又有一些,采用了純腳本的模式。比如Python,LUA。 腳本的好處在于更低的編碼成本(經過仔細研究,我發現,這是由于寫腳本語言的心态和寫C++的心态導緻的。 寫C++的時候,總是想着代碼的複用度,而在腳本的時候,很多時間會認為,這個腳本,就是為這個對象服務的,那我就按照策劃需求來寫就可以了。 我想,這也是許多時候,腳本語言存在的意義。特别是早期引擎中,使用腳本來處理一些關鍵的事件響應)。 而大家熟知的虛幻引擎以及有一個名不見經轉的Torque,則自己整了一套開發語言。 我想,它們的目的,就是為了使大家能夠以一種更安全的方式來程式設計, C++一不小心,則會帶來記憶體和效率問題。 它的使用成本,人員成本其實是高于其它語言的。 Mono C# JS,BOO的出現,再一次讓大家的眼睛一亮,原來,引擎可以這樣整。
Mono的橋接,使得高效的C++圖形引擎與帶GC的記憶體安全語言進行結合。不僅減少了安全隐患,也使得大家編寫跨平台代碼時更佳容易。 同時,這類語言的反射機制,更适合做編輯器。而比起先前的一些DIY語言和像LUA這樣的小巧型語言,Mono使腳本程式設計可以進行DEBUG,而不單純的靠PRINT輸出。
這裡就順帶說一下三個語言的差別
C# 這是我見過的大型項目中使用得最多的語言,也是我比較喜歡的語言。 因為它和C++很像,同時嚴格的類型和文法檢查。
JS 在幫一些朋友做小東西的時候,使用過這個語言,由于mono自帶的提示功能,寫起來還是挺順手。 但總給我一種摸不着頭腦的感覺。 并且U3D給的JS,不是嚴格的JS,有些文法不支援,而有些文法又很特别。
BOO 完全沒有使用過,貌似也很少有人使用。
更多unity2018的功能介紹請到paws3d學習中心查找。