Unity的优势:良好的编辑器支持,包括Animator动画状态机,Animation动画编辑器,粒子编辑器等等。Unity可以使用C#编程,省去了内存管理的麻烦,还可以通过协程来处理游戏中的异步事件等等,C#的很多库也是很方便(PureMVC,LitJSON)Unity有内置的Profiler,可以直观地对性能进行调优。Unity的劣势对GameObject之间的通讯的支持做的不好,关于这一点,我写了一篇博客来讲这个问题:【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信(二):引入中间层NotificationCenter对NameSpace支持的不好,到4.x的时候NameSpace还是不能正常使用对文件读写没有内置的支持,对JSON和XML数据的读写没有内置的支持。在2D方面的许多特性还是在开发中,功能比较弱。比如SpritePacker,骨骼动画等。由于Unity入门比较容易,导致大量美工和策划也能使用Unity,致使网上的代码资源良莠不齐,很多博客和文章连最基本的代码高亮都没有(比如说Unity3D贴吧和游戏蛮牛论坛)。相比之下,Cocos2d-x网上的学习资源比较适合程序员。