为什么我要写这样一篇文章呢?其实是这样的,最近我的一个老同学,一直在跟我吐槽unity的webGL有多坑多坑,当初我们是一起学的unity,也是怀着一颗做游戏的梦想,最后呢,他去做了游戏,我做了当时很火的VR和AR,这几年来呢,我这位同学一直在做手游,最近换了一家公司,说是要做页游,使用unity的webGL模块来做,他呢,遇到的坑是真多,结合我自己的工作经验,我总结一下unity的webgl和three.js有哪些优势和缺点:

unity webGL优势:众所周知,unity操作简单,所有东西都是组件化的,上手容易,操作简单,此外unity还有强大的物理系统、音频系统、AI系统、动画系统等,而且都是面向对象,理解起来容易,性能强大

unity webGL缺点:由于unity整个底层框架都是以CS架构的,所以对于浏览器架构也就是BS架构,有很多功能不能很好的支持,可以说是当时的引擎开发者并没有考虑太多关于web端的兼容性,也许unity的一开始的定位就是CS架构,也就是因为这个原因,目前市面上我们常用的unity插件,大部分都没有兼容web端,大家都知道,unity之所以好用,是因为很多开发者把常用的功能开发成插件,供我们使用,但是如果这些插件在web端使用不了,那将毫无意义。

three.js优势:第一three.js开源,我们可以根据需求修改它的源码,并且它能够很好的兼容其他的前端框架,例如jquery这些,开源现成的UI框架太多了,拿来直接使用,修改一下就行了,而且js开源的东西太多了,github一大堆,可拓展性强。

three.js缺点:很多东西没有组件化,操作使用起来特别不方便,经常因为调整一个小东西,例如一个物体的位置,就需要通过代码一点点调,而且并没有像Unity一样可以针对每个物体添加脚本,面向对象比较弱,虽然也有编辑器,但是一般开发者不会去用编辑器开发,因为编辑器实在太初级了,功能太少了,甚至连物体多选功能都没有(这一点我特别想吐槽),大家可以看看three.js编辑器的图:

我总结我自己的看法:如果需要开发web端的项目,如果是小项目,只是使用unity引擎自带的功能,不会使用太多插件,可以使用unity开发,如果是web端的大项目,如果unity做使用插件比较多,建议使用three.js开发,至少项目可控,不会因为某个插件的未知因素导致项目出问题。这是three.js的官网 https://threejs.org/,这是编辑器https://threejs.org/editor/,大家可以去了解一下,以上,就是我的看法,希望对你们有用,谢谢关注,

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐