請問為什麼Unity3D使用mono做為跨平台解決方案?

為什麼不使用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遊戲引擎 |