請問為什麼Unity3D使用mono做為跨平台解決方案?
01-13
為什麼不使用java或者其他的
因為沒別的可以選。Java理論上可以,但真的要搞的話毛病很多。mono毛病雖然也不少,但因為一開始就有很好社區,解決起來比較容易。
另外,你誤會了,Unity跨平台主要靠的是C++。你看google的android用java被甲骨文告的死去活來的
題主有個誤區。unity跨平台靠的是c++。mono只是腳本運行時。不是mono換clua v8什麼的,一樣不影響unity跨平台。然後為什麼不是別的,不怕java黨打我,c#是迄今為止用過最好最完備最符合工業化要求的語言沒有之一。c#大法好。unity在決定用c#的時候大概只有一個選擇就是mono。當然現在可以選coreclr了。
最初Unity選擇的是python,後來是受不了python的性能才改用的mono。記得有個mono郵件列表裡的老帖子提到換到mono有6倍的性能提升。然而還是有愛的,所以一直要拚命留著Boo語言
沒選java的原因不詳,不過從他們創始人偏愛python(以及perl)的口味來看,不選java還挺自然的吧
Lua的定位和Unity需要的引擎層其實不一致
至於說跨平台都是靠C++的,當然你們都對,畢竟mono也是C++寫的。而且mono的授權實在太不得人心,Unity官方也在推il2cpp幹掉mono。不過我想其實題主並不是在問這種「本質」的問題故事是這樣的。。。。。。
還有,U3D本來就是C/C++寫的,只不過提供C#作為遊戲腳本。。。
mono是開源的.net framework
當初地下室裡面,悠悠的燈光下,unity創始人說用mono,另外一個說用C++,還有一個掃地阿姨說用java,因為ios不支持java果斷掛掉,然後創始人與另外一個石頭剪子布,創始人勝出,然後就mono了。
現在已經是IL2CPP了,貌似大有取代mono的趨勢
非專業回答。
1、Mono開源,直接拿來用就可以了。
2、Java還要各種配置,對新手不友好,Mono額外下載gtk就可以,簡單粗暴。
3、net簡單上手,c#語法優美簡潔,有c++基礎的,泡一下msdn就能直接艹代碼用net了。
(未確定)4、c#比起java,通過中間代碼,更容易跨平台。
蛤的感覺會有撕逼,我先跑為敬了。我不知道!為神馬邀請我個小白啊,請摺疊我!
推薦閱讀:
※C# 如何進階?
※Unity中打包Texture到AssetBundle反而比原資源jpg格式還要大,該怎麼減小空間?
※我是否該踏入遊戲行業?
※如何評價Unity5中多人遊戲和網路模塊UNet?
※想學習unity3d,哪位能給個學習路線圖?謝謝
TAG:Unity遊戲引擎 |