LayaBox和CocosCreator的比较
本人目前使用cocosCreator开发过两个项目,使用LayaBox开发过一个项目,现对这两个框架发表一下自己使用下来的一些心得,并列举一下两者间的差距。对比版本:LayaBox(1.7.20),CocosCreator(1.9.2)
从表面上看
LayaBox的优势:
- 支持使用额外的一个语言ActionScript3进行编码
- 对滤镜和Shader的支持较好
- Sprite提供了cacheAs属性以支持渲染缓存,提升渲染效率
Cocos的优势
- UI编辑器较为强大,插件化开发
- 发布为Native APP后与原生APP交互的能力较强
开发中实际体验
IDE对比
代码编辑器
LayaBox:集成了一个低版本的VS Code作为代码编辑器,支持的typeScript版本较低,很多VS Code新功能无法体验
cocos:没有代码编辑器但是可以配置VS Code作为其代码编辑器,官方提供了相关配置教程,配置完毕后可以通过VS Code编辑代码,然后通过设置一个快捷键来编译项目并运行
总结:cocos代码编辑体验较好,因为用的是官方版本VS Code,能及时升级到最新版本体验所有新特性
UI编辑器
LayaBox:
LAYA1.png
cocos:
Cocos1.png
差异:
- layabox支持节点锁定,使节点在点击时无法被选中,但是cocos没有提供该功能
- cocos支持仅横向/纵向拖动节点,layabox没有该功能
- layabox一个组件提供一个功能,而cocos所有组件可以叠加使用,一个节点上可以挂载多个组件以提供多种功能,更加灵活
- cocos提供节点染色功能,设置Color属性可以改变一个节点的整体颜色,简单地说,拖放一个白色图片到舞台上后,可以通过修改Color属性将其变成任何颜色,而Layabox不行,需要显示多少种颜色就需要准备多少张图片
- 锚点Anchor在LayaBox中不会对子节点生效,当子节点的锚点为默认值(0,0)时,不论父节点锚点设置为什么,子节点永远在父节点的左上角。但是在cocos中则相反,父节点锚点会对子节点锚点产生影响,若父子节点锚点均为(0.5,0.5),然x和y均为0的情况下它们的中心点是重合在一起的,这样对于排版来说更加便利
- 资源产生变化后cocos会自动刷新资源管理器面板,而layabox需要手动点击刷新按钮
-
九宫格编辑窗口:cocos的九宫格编辑窗口可以拉伸,也可以通过鼠标滚轮缩放图片大小便于我们精细定位分割线位置,但是layabox并没有这些功能,在图片尺寸较大时无法看见分割线位置
Cocos2.png
LAYA2.png - 脚本和节点关联方式:
layabox提供了runtime,拓展脚本及附加脚本。拓展脚本和附加脚本都可以通过拖放的方式在UI编辑器中使之关联到脚本上。拓展脚本其实就是runtime,只不过它可以开放几个共有属性给UI编辑器进行编辑。将拓展脚本拖放到节点上后,该节点的属性面板中会出现拓展脚本的名字及其开放配置的几个属性,而将附加脚本拖放到节点上后,节点内会增加一个脚本子节点,点击选中该脚本子节点后方可设置它开放配置的属性。这三种方式配置流程很不一样,设置脚本所开放配置的属性的方式也不一样,很容易弄混,非程序员无法玩转。
cocos只有一种方式,就是将写好的脚本文件之间拖放到节点上,此时在节点的属性面板会出现该脚本开放配置的属性,这种方式和layabox的配置拓展脚本的方式如出一辙,但其仅有这一种方式的话就简单很多,非程序员也可快速掌握。cocos最屌的地方在于,将一个脚本关联到节点后该节点在UI编辑器中的外观会立即被该脚本所影响,简单的一个例子是,我为一个列表节点挂载了一个能改变列表项间距的脚本,且该脚本开放了一个space属性供配置,那么在挂载后我每次调整space属性的值时,UI编辑器里的列表项间距都会马上发生改变,这样就避免了我每次改完space属性值后还得编译项目再启动调试去看最终效果,大大提高了UI编辑效率。
总结:cocos的UI编辑器碾压Layabox
脚本运作方式
LayaBox:
runtime及拓展脚本都是通过继承所挂载组件的类来实现功能的,比如我写了一个拓展脚本GBox,将其挂载到UI编辑器中一个HBox上面,那么该HBox在项目运行时就不再是通过new HBox()来产生组件实例了,而是通过new GBox(),这样的话我在写脚本的时候还必须先了解清楚它所继承的父类内部的实现细节是怎样,这往往意味着需要看layabox框架的UI组件部分源代码,很让人头疼是不是?
cocos:
包括官方提供的组件在内一切脚本皆是附加脚本,这意味着我在写脚本的时候不需要关心该脚本所要挂载到的节点是什么类型,内部实现细节是怎样,我只需要关心我需要为挂载到的节点提供哪些新功能即可
总结:
cocos脚本使用更加便捷清晰不易出错,大部分时间仅需在UI编辑器中拖拽脚本以及设置脚本开放配置的属性即可,代码量很少