一.基于Unity2D的一些好處
1.跨平臺,平臺相關的功能Unity都已經幫你實現好了。一些平臺沒有的功能通過SDK的接入可以解決
2.基于Unity的酷炫的粒子光效編輯。Unity本身就是一個功能強大的粒子編輯器。 之前我還認為cocos2d-x的粒子系統的功能足夠了,但是跟專業的編輯器比起來,遠遠不夠。粒子系統要跟粒子特效編輯器配合起來,其功能遠遠不是之配置一個粒子系統的幾個參數就可以的。cocos2d-x本身的粒子系統是很雞肋的功能,只能拿來做一些簡單的光效,不可能用來做復雜的技能特效。
3.由于框架和架構的優勢,Unity的游戲可以極大程度避免崩潰和閃退。由于代碼都是c#寫的,并且是組件結構,所以即便出了錯誤也只是個異常而已,而不會影響到系統流程。
4.Unity Profiler性能分析器可以輕易的找到內存和cpu的瓶頸
5.編輯器也可以擴展,可以開發一些比較公共的組件,讓策劃直接拖拽便可實現組件模塊。
6.方便的資源管理系統。使用Unity,你不用特意維護幾份資源(比如原始資源、打包后的資源、iOS版本資源、Android版本資源等等),只要一份資源,然后Unity里面可以設置它的具體參數,比如使用紋理壓縮、最大限制在512x512大小等等。Unity發布游戲的時候會自動根據平臺相關的導出選項導出正確的資源。
7.豐富的插件。有大量的功能我無論拿cocos2d-x還是Unity都不知道怎么實現。比如一些shader特效、物件碎裂的特效、場景破壞和變形的特效等等,這些在Unity插件中都可以找到對應的實現。
8.很多Unity的游戲都可以反編譯
9.很多功能都是成體系的自然而然的。比如物理、碰撞檢測、導航尋路、場景管理(Scene manager)、場景烘焙(光照)。這些無論拿哪個出來都是相當有技術的功能,但是在Unity中幾個按鈕、幾步操作就可以實現對應的功能。
10.可以一定程度上減輕程序員的負擔。所見即所得,把設計的工作直接交給美術和策劃。
二.基于Unity2D的一些缺點
1.sdk開發調試不是很方便,改一下得導出一個版本
2.項目不是開源,很多插件都需要收費
3.Unity中資源對應的配置有很大的重要性,所以一個Unity功能就是資源+代碼的整合,你很難分出一個資源包。這樣你的Unity項目可能很大。(使用AssetsBundle打包后可能避免這個問題,但是項目初期資源變動大,經常打包很不方便)
4.2D的簡單動畫功能實現麻煩,要創建的東西較多。
5.C#語言的學習需要有一定的面向對象的編程基礎。
6.由于使用一套資源圖片就支持所有設備,畫面渲染就有點缺陷
7.學習成本較高,但是熟悉后開發效率高