亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

unity3D用什么語言開發好?

unity3D用什么語言開發好?

慕后森 2018-09-10 10:06:16
unity3D用什么語言開發好?
查看完整描述

2 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

很有意思的問題.

來看看網絡大拿們所做的總結.

當然結果需要您自行考慮.


首先,下文摘錄自InfoQ<JS OR C# 不存在的腳本之爭>


到底C#和Unity3D里的JS誰好呢?

最常見的問題無非是: 用js寫的u3d游戲和用c#寫的u3d游戲,到底誰的運行效率高???

最常見的回答為非是: 肯定是C#啊,因為js是動態的??隙ú蝗缇幾g的語言好。

第二常見的問題無非是: 用js開發和用c#開發,哪個更快更適合我???

第二常見的回答無非是: js適合個人開發,敏捷快速。c#適合公司開發,規范嚴謹。

咱們還是用和剛才討論與javascript的區別時一樣的思路來整理C#和UnityScript的不同,也就是按照先本質,再表現的順序。同時兼顧回答一下上面的兩個問題。

本質求同存異

開篇就說了,UnityScript是和C#同一個層面的語言,也需要經歷從源代碼到CIL中間語言過渡,最終到編譯成原生語言的過程。所以本質上,最終運行的都是從CIL編譯而來的原生機器語言。但的確會有C#比較快的現象,那么問題出在哪呢?

一個可能但不是唯一的答案就是 UnityScript和C#生成CIL中間語言不同。

這一點想想也很簡單,就像上文提到的var的問題,如果使用Object來處理var的問題,則不可避免的是頻繁的裝箱拆箱的操作,這對效率的影響是很大的。

所以的確,C#的速度更快,但原因是UnityScript會涉及到頻繁的裝箱拆箱操作,進而生成的CIL代碼與C#有差異,而并非UnityScript是動態語言且沒有經過編譯。

現實很單純

開發到底是使用C#還是UnityScript呢?如果不考慮運行的效率,僅僅考慮開發時候的感受,小匹夫就談談自己的看法好啦——那就是珍惜時間,遠離UnityScript。

首先有幾個事實我們要清楚:

UnityScript是脫胎于.NET平臺的第三方語言Boo的。所謂的第三方語言和C#的區別,就跟自己到底是不是親生的,爹到底是不是隔壁老王是一樣的。差距可能是全方位,立體式的。社區支持,代碼維護,甚至是編譯出來的CIL代碼質量都可能有很大的差距。選擇UnityScript之前,問問自己之前聽說過Boo嗎?別忘了UnityScript和Boo的淵源。

UnityScript和JavaScript除了長得像之外,根本就沒有什么關系。你在JavaScript里如魚得水,在UnityScript中如果不小心就可能埋下隱患,而一些隱患可能藏得很深。而且UnityScript也是靜態語言,也需要編譯,所以看不出來選擇它作為開發語言為什么會有人覺得快。

插件的支持。貌似大多數都是C#寫的吧。

好吧,如果上面的3點都不能說動你,那就看看官方的態度好了。

U3D官方團隊基于數據分析做出的一個語言被使用的百分比圖。

由于Boo語言的使用量基本可以忽略,所以從Unity5.0版本開始就會停止對Boo的文檔支持。同時消失的還有從菜單創建Boo腳本的選項“Create Boo Script”。從U3D團隊對Boo的態度,也可以窺見和Boo聯系密切的UnityScript未來的走勢。

同時U3D團隊也會把支持的重心轉移到C#,也就是說文檔和示例以及社區支持的重心都在C#,C#的文檔會是最完善的,C#的代碼實例會是最詳細的,社區內用C#討論的人數會是最多的。


感謝INFOQ提供的原文支持.


查看完整回答
反對 回復 2018-09-20
  • 2 回答
  • 0 關注
  • 1065 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號