手游引擎unity和cocos各有什么优劣?_第2页回答

2020-07-01 19:04发布

11条回答
何大侠
2楼 · 2020-07-08 10:51

一、3D游戏(包含2.5D)

只能:Unity3D
作品:职业棒球、星际陆战队等
分布:欧美国家用Unity3D的较多。商业化引擎中,3D游戏占比最高
原因:

就像 @朱云所说。Cocos2d-x目前还不支持3D。相比而言,U3D就是你唯一的选择了。

二、大型2D游戏(可以指安装包上百兆的)
推荐:Unity3D
作品:捣蛋猪、冰雪奇缘、天天飞车、绝代双骄等
分布:欧美国家用Unity3D的较多,国内用Cocos2D-X的多
原因:

1、游戏这东西,就是要跟“直觉”打交道的

我的想法有点极端,我感觉在游戏世界里,代码似乎更像是“妥协”的产物。

如果能做到“所见即所玩”,那真的是一个非常惬意的事。到时候,或许一个8岁小孩就能独立自主的开发一款游戏。

而这一点,Unity3D的王者地位,当之无愧!

2、Unity3D提供了超赞的设计工具,让你感觉像是在用3DMax和Flash来做游戏

3、适合大型团队,美工、动画更容易上手

U3D可以让美工、动画、码农在同一个平台上各司其职。这点从目前来看,Cocos2D-X望尘莫及。

三、中小型2D游戏(百兆以内的)
推荐:Cocos2D-X
作品:捕鱼达人、我叫MT、2048等
分布:东亚游戏多出自Cocos2D-X,尤其中国。但大多为小型游戏
原因:

1、Unity3D比Cocos2D-X的APK包要大了近十倍

仅以Android手机为例,同样的一个2D版HelloWorld,两者的安装包大小:
Unity3D:约为9.27M
Cocos2D-x:约为1.67M

解开包后发现,里面除了两个一共占据近12M的SO库(libmono.so和libunity.so),还有一票的DLL文件。其中System.dll、Assembly-CSharp.dll和mscorlib.dll这三个核心文件就占了5M。虽然它们压缩比约为50%,但仅这些文件就占了这么多。心疼啊。

而这,在“寸土寸金”的中小型游戏面前是多么可怕的数字。

2、Cocos2D-X比Unity3D快很多

即使不用测试工具,也可以轻易的发现这一点。

主要因为Unity3D用了Mono架构,它移植自微软的.Net。每次启动都会加载Mono框架和Unity3D引擎,再加载.Net Assembly(一堆DLL文件),这可比Cocos2D-x这种纯C++(包括Lua和JS)实现要慢很多。

3、独立开发者更喜欢“码”游戏

独立开发者大多是“技术达人”(不然怎么开发游戏)。U3D会让他们有“无所适从”感,从而影响了对U3D的灵活运用。对这些人而言,这是赤裸裸的时间成本。在游戏开发中,这点尤为重要。还是Cocos2D-X让他们更感到“亲切”,更有成就感。

也许你会问:“你怎么知道?”
因为我就是搞技术的。

4、中国游戏多出自Cocos2D-X

Cocos2D-X是正宗国产货,又是优秀的开源项目,国外用户群也不少。
也正是因为这个原因,C2D天生就对中国用户很“偏爱”。比如社区,我在上面问了两个问题,基本上当天问当天答,而且非常热心。从这一点我就对C2D产生了不错的好感。

5、Unity3D要收费

对大型2D游戏团队来说或许还不算什么。

初步算一下,Pro要1500$,手游怎么至少也得兼容iOS和Android吧,各自1500$,再加个Team套装,加一块儿,5000$,两万多银子。

Cocos2D-X免费、开源。遇到问题可以研究源码或向社区求救。

四、微型游戏(指争取安装包在1M以内的)
推荐:AndEngine、Cocos2D-iPhone
作品:Flappy Bird、小球快跑、五子棋等
分布:不需要跨平台的超小游戏用的多。
原因:

如果只想在一个平台上开发游戏,无疑上述两种是最好的选择

其中AndEngine开发出来的游戏最小才400多KB,大名鼎鼎的Flappy Bird就是用它做出来的。

另外,iPhone的Cocos2D划到这里似乎不太合适,但仔细想想,现在有更成熟的Cocos2d-x方案,Cocos2D划到微型游戏一列,相信是早晚的事(个人看法,轻拍)。

五、总结

1、Unity3D:如果你需要开发大型游戏,或需要开发3D游戏的,请选这个。

2、Cocos2D-x:如果你开发的是中小型游戏,对安装包大小比较在意的,请选这个。

3、Andengine、Cocos2D-iPhone:如果你只为开发单平台游戏,又非常在意速度和安装包大小,请选这个。

小狮子
3楼 · 2020-09-02 10:55

首先目前来看unity3d 因为是3d引擎,目前对2d支持并不完善,unity3d 目前做2d普遍两种思路,一种是正交相机,3d画面2d视角,另一种是通过一些插件,动态创建mesh来绘制图形单元目前用的较多的是2d toolkit,ex2d,smooth moves


相关问题推荐

  • 回答 5

    第一种方法:通过点击场景文件打开Unity游戏工程找到Unity游戏工程所在的目录,我这里的工程放在在E盘根路径的Unity_workspace文件夹中。注意:unity软件不支持中文路径,所以不要把工程放在中文文件夹下。我们在这里就打开New Unity Project 4工程,进入到Ne...

  • 回答 13
    已采纳

    如果是学习研究的话,当然是体验官方的最新版本。要是项目开发的话,还是要选择长期稳定版本,也就是大版本的LTS。比如2017.4或者是2018.4都是LTS版本,至于后面的小版本可以去看下更新的内容来做选择吧!...

  • 回答 9

    unity3D是实时3D互动内容创作和运营平台。包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助Unity将创意变成现实。Unity平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC...

  • 回答 11

    首先在场景中调整好你要观看的视角选择摄像机,按下Ctrl+Shift+F或者菜单栏->GameObject->Align with view在不行的话,可以调整摄像机的Position 和 Rotation

  • 回答 5

    将MeshRender组件移除即可:

  • 回答 9

    1.在Asset store里选择一个skybox。 2.从素材库中选择一个人物角色,也可以自己建模或者在其他软件中做好再导进来。 3.想好角色如何运动,然后用自己比较熟悉的语言编写来作展示,这段代码可以实现当你按下键盘上的A/D/S/W的按键时,角色会向前后左右四个方向的...

  • 回答 17

    还是要学好编程基础呀如果你觉得编程很苦难 不一定要从c#开始学  学学js flash as等等  有个梯度就好多了如果要用好unity  不会编程那是不行的  学习的过程中都有个头疼的过程  记住  头越痛  代表你要接受的东西越多  坚持 你的大脑在和知识兼容中:D...

  • 回答 4

    xcel 表的操作少不了要引入第三方库,首先我们需要引入 Excel.dll 和 ICSharpCode.SharpZipLib.dll,这两个类库在网上都能找到;然后我们还需要引入 System.Data.dll,这个类库在 Unity3D 的安装路径下的 Editor\Data\Mono\lib\mono\unity 文件夹下能找到...

  • 回答 1

    需要添加如下引用: System.Configuration System.Data System.EnterpriseServices System.Security System.XML using UnityEngine; using System.Collections; using System;  using  System.Data;  using System.Data...

  • 物理引擎问题2021-06-15 17:35
    回答 4

    物理引擎则使用动量、扭矩等用高等数学手段来模拟真实物体,这将得到更真实的效果且使我们的编码更加容易。

  • 回答 1

    不能这样表述,三维通常是立体的空间,二维则是平面的。数学中通常是Oxyz表示空间直角坐标系,Oxy表示表示的是平面直角坐标系,你可以说空间直角坐标系中去掉Z轴可以转换为二维,因为去掉X或Y轴都能转换为二维。...

  • 回答 2

    GameObject.renderer.enabled//是控制一个物体是否在屏幕上渲染或显示 而物体实际还是存在的 只是想当于隐身 而物体本身的碰撞体还依然存在的GameObject.Destroy()//表示移除物体或物体上的组件 代表销毁该物体 实际上该物体的内存并没有立即释放,而是等到这...

  • Canvas三种渲染模式2021-04-29 19:50
    回答 10

    一:Overlay—覆盖模式类似于手机贴膜,所有UI都会显示在场景中2D,3D物体的上层在同一个Canvas下可以调整Canvas子物体的先后顺序,层级面板中越靠上则先被渲染多个Canvas下可以调整Canvas组件的Sort Order属性调整渲染顺序,数值越小的画布越先被渲染:Camer...

  • Unity引擎2021-04-29 19:47
    回答 4

    不得不说,Unity3d是个解放生产力的游戏引擎,自带了各种编辑器,可以进行一系列的可视化操作。需要注意的是,unity3d适合FPS游戏,物理游戏等中小型的游戏,并不太适合MMO开发。unity3d难学吗?如何学习unity3d呢?在学习之前又应该了解哪些内容呢?代码写不...

  • 回答 3

    不是人工检查的,如果你的问题里面有敏感关键字,是发不出去的,现在国内所有的网站在发布文章时都要进行检查的,所以你在发之前先检查一下看问题里面是否有违禁词语。

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