cocos creator和unity引擎有什么区别?

2020-07-01 18:41发布

9条回答
Mantra
2楼 · 2020-07-02 10:28

UNITY3D和 COCOS2D-X都是跨平台的游戏开发引擎,COCOS2D是专门做IPHONE游戏的2D游戏引擎。

下面就从多个方面来对比阐述一下:

1)是否开源

COCOS2D开源,有文档支持,论坛资料庞杂博大;

UNITY3D闭源,有强大的文档支持,论坛资料一样的庞杂博大。

开源对COCOS2D来说,意味着可以进行随心所欲的改造,可以更深入的了解各种游戏需求的底层实现原理,更可以订制出更符合自己要求的类库。

相对的,它的麻烦也不小,因为开源,所以可以随便改,因为可以随便改,所以很容易改错,而且调试维护的成本也会倍增,因为更接近底层,所以往往实现一个功能的时候或者自己要更费周折。

闭源对于UNITY3D来说,意味着更能方便的使用,更有质量保证,同时意味着偶尔有使用者看不到的想看的内容,想接近底层会花费巨大的代价,想订制一种自己的数据结构或者功能来添加进去的时候很难下手。

2)是否免费

COCOS2D免费,免费意味着,服务差,很多程序员不想看到的现象会莫名其妙的出现,偶尔作者不小心出点意外什么的没有什么可以控制的方法…例如,作者一不小心使用了一种非常危险的方法来写代码,这个时候基本上使用者欲哭无泪,查起错误异常艰难,但是总能查出来.免费的好处是,有一天如果用COCOS2D做了一个很牛逼的游戏,可以正当光明的说,这个游戏是我们做的,游戏质量很好,而且不用恐惧有人冲过来收钱。

UNITY3D收费,收费意味着…服务真心是不错诶,U3D小组力求把麻烦留给自己,方便留给程序员,所以用着还真是爽,很多麻烦都被U3D消灭在萌芽阶段,真心好,但是,要钱的。

3)跨平台能力

两者都能跨平台。

COCOS2D的跨平台,需要大量重写代码,面对各种平台的各种细节麻烦.所以当使用COCOS2D的时候,很多麻烦来了,于是再面对平台特定的更麻烦的问题的时候,程序员基础好很多,更容易搞定

UNITY3D的跨平台,程序员只需要选选按钮就淡定许多的搞定了,但是当面对U3D团队没有想到的平台特定的更麻烦的问题的时候,这个时候的程序员,需要使劲的“吃”键盘来克制自己内心的焦虑吧…

4)团队开发

cocos2d压根就没往团队方面想,所以团队配合方面的工具,程序员基本自理,细节问题自理,麻烦问题自理,UNITY3D想了一些,做了很多,但是也有纠结的地方,程序员在没有完全理解的基础上使用会变得很难接受.值得一提的是,UNITY有强大的所见即所得能力,动态解释,现场执行,COCOS2D一直在向着这个方向努力,或许在未来某一天两者也会不相伯仲

5)周边工具

COCOS2D是集体智慧,各路人马都提供了各种各样的工具,COCOS2D将他们整合到了一起,各种工具都有各种麻烦,也有各种好处,总的来说,花点精力还是有好结果的。

UNITY3D自家解决了很多麻烦问题,周边工具也有很多人做,但是,不开源,而且要钱,服务好很多。

6)可定制性

COCOS2D拥有令人发指的可定制性,因为从C++写起,所以程序员可以为所欲为,为所欲为的代价就是,所有细节都要照顾,所有麻烦都要生顶(例如,写出的工具不跨平台,订制的数据结构无法通用,序列化一个类到其他平台之后无法反序列化等等)。

UNITY3D有一个专门为订制而写的类库,没怎么用过,但是可以确定的是,这个类库是跨平台的,这个优势很伟大。

7)3D

这个U3D确实完爆COCOS2D,不过,要是不想做3D游戏呢?那多余的3D功能也会很累赘。

总而言之,两家都是游戏引擎的大家,两者都能适应不同的需要,各具特色各有特点,估计谁也灭不了谁。


征戰撩四汸
3楼 · 2021-11-12 14:52

    Cocos引擎包括两部分,一是cocos2d-x引擎本身,提供了游戏所需要的渲染、碰撞检测、场景管理等功能。二是cocos studio编辑器,提供了游戏场景编辑的功能,当然只能编辑2d的场景。 

    Unity引擎集成度高,耦合度低。集成度高是说Unity编辑器和脚本控制是集成在一起的,Unity编辑器里面可以很方便的为场景中的对象绑定控制的脚本,但是耦合度又很低,Unity引擎是基于组件的开发的一个系统,首先它的设计思想就很好,场景中的所有对象,脚本,UI控件等等都是一个个组件,绑定在一个对象上就能工作,而每个组件都是独立的。当然最重要的是Unity编辑器特别强大,可以很方便的编辑3d场景等等,而cocos引擎是不能编辑3d场景的(虽然现在cocos2d-x也支持3d物体的渲染、碰撞等等,但是可用性和效果都与Unity无法比拟,而且cocos studio是不支持3d场景的绘制的,只能通过第三方的建模工具导入)。 

   当然两者都支持跨平台,windows,mac,linux,android,ios,blackberry等等都能支持,但是两者主要都是应用在手机游戏上,cocos2d-x手机2d游戏份额更多一些,unity手机3d游戏份额更多一些。



元则清
4楼 · 2020-07-01 19:01

国内第一个模仿u3d的引擎,目前成熟度还很低,还有不少问题

老杜
5楼 · 2020-07-02 09:28

cocos creator 还不成熟。没有unity强大

花轮同学
6楼 · 2020-07-02 14:16

cocos creator引擎专注于小游戏H5游戏的开发,在泛用性和实用程度上相对较低

unity引擎在手机游戏端已经发展多年,有相对完善成熟的体系

Ross
7楼 · 2020-07-03 08:39

cocos creator主要用来制作一些2D类型的小游戏,例如微信小程序上,大的2D游戏制作起来效率就非常的低,基本上所有的功能都需要自己去写.而Unity引擎里面已经把好多功能封装好了,游戏开发人员直接使用就行了,它即可以开发3D游戏,也可以开发2D游戏,效率也非常的高.

蜗牛
8楼 · 2020-07-03 09:24

COCOS CREATOR界面更简洁,学习更简单一些,套用UNITY的操作方式,也更符合趋势,但由于使用JS作为开发语言,所以性能非常差,不适合做太大型的游戏,只是适合于小型手游和微信小游戏,成熟度不高,还是有很多的问题

Unity 发展成熟,跨平台,可以制作多种类型游戏

这两个基本上都是用于制作手游的游戏引擎,区别在于Unity主要用于制作3D手游,是收费不开源的,功能比较强大。而Cocos是制作2D手游的,是一款免费开源的游戏引擎,其有一个分支CocosCreator专门用于制作小游戏,但是在3D方面不行。

相关问题推荐

  • 回答 6

    第一步:对着Assets点击右键,选择ExportPackage第二步:选择场景文件以及和场景相关的资源或者素材,然后点击Export第三步:给导出的资源取名,并且选择要保存的位置即可

  • 回答 87
    已采纳

    玩游戏玩的很好,说明你对于游戏里面的规则、剧情设置还是比较了解的,对于从事游戏相关岗位来说也是优势之一。但是学习游戏开发还是要对游戏开发的工作内容做进一步的了解,游戏开发涉及代码较多,可以通过进一步的了解,判断自己是否适合学习这个方向,另外...

  • 回答 11

    游戏开发入门不难。后期发展需要你有丰富的奇思妙想。游戏开发肯定是培训好,自学学得不系统,并且不易发现自身薄弱之处。游戏开发的学习时长还是要看你自己对知识与技术的掌握能力,一般来说,游戏开发的学习时长大约在五个月左右。...

  • 回答 18

    个人觉得如果有一定的技术基础的话还是可以考虑自学,如果零基础的话可能会有些难度

  • 回答 10

    问题还是出在粒子的sorting fudge。在unity的2d模式下,游戏本身的背景相当于是sorting fudge的0,当你把粒子的sorting fudge设为0以上的时候,粒子就都会被背景盖住。所以在3d模式下给alpha正值来给add垫底的话,到了2d模式下就会通通不显示。所以遇上这样的...

  • 回答 17

    虚幻4引擎,你会看到和平精英加载页面左下角有这个图标。

  • 回答 8
    已采纳

    转载知乎上的两位答友的回答,各有道理。作者:风小锐链接:https://www.zhihu.com/question/322249959/answer/675883379来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。未来Unity有可能出现3A大作吗? 有可能。基于Unity已...

  • 回答 11

    在Assets文件夹里面.点击右键Create/Material即可以创建材质球

  • 回答 23

    可以让模型师直接作出这样的形状,如果用纯Unity制作,就要用基本游戏对象拼接了,包括楼梯,城堡,都可以拼接出来。正常情况不会这样做,因为不够精美,都是建模师来实现,毕竟Unity不属于专业的建模软件,侧重于实现功能。...

  • 回答 18

    粒子系统由粒子发射器、粒子动画器和粒子渲染器三部分组成,主要用于游戏场景中一些特殊效果,如水、烟火等等

  • 回答 18

    首先,Python开发游戏非常尴尬,原因是没有好用的游戏开发库。Python开发游戏仅推荐PyGame,PyGame是对多年以前很流行的游戏开发库——SDL的封装。但是说实话功能太简陋了,做个动画都得考虑刷新的问题。楼主要做简单小游戏,只需要画一两周熟悉Unity引擎,然...

  • 回答 9

    1.标记水体碰撞的位置2.计算水波的传递 通过波动公式,3D或者2D 波动公式都行3.水面顶点采样波动传递结果计算结果做顶点Y轴偏移

  • 回答 15

    Unity3D中两种阴影的实现传统的ShadowMapShadowMap说起来十分简单,把摄像机和光源的位置重叠,那么场景中该光源的阴影区域就是那些摄像机看不到的地方,主要应用在前向渲染路径中。具体实现分以下几个步骤:如果有平行光开启了阴影,Unity就会为该光源计算它...

  • 回答 18

    Doozy UI是Unity UI视图层的框架,本身使用的还是UGUI的组件,但提供了一套强大的UI管理功能,可以很方便的实现一些炫酷效果,方便的UI系统管理与事件传递机制。

  • 回答 12

    Unity3d更好,因为U3D占有的市场更大,目前cocos大都是用来开发棋牌游戏的,在这方面它有着巨大的优势。而Unity3d既可以用来开发大型3D游戏,也可以用来开发vr游戏、vr应用,这是比较不错的,未来有着巨大的前景。另外ue4也是个不错的选择,近年来用ue4开发的...

  • 回答 11

    当Unity 需要做热更新的时候(2013年开始),而普通的C#又做不到的时候,而对于游戏行业来说Lua脚本热更新已经是很成熟的方案,自然Lua 热更新就成为了Unity热更新的首选。

没有解决我的问题,去提问