其实很多点都是前面的大大都提到了,从我最大的感受来说:两个引擎的定位就不一样。 Unity是一个更加侧重于通用的引擎,UE4是一个更加偏重于真实感 FPS类的引擎。Unity更多侧重的是灵活性,小团队爱咋整咋整;UE4有一套成熟的方法链和工作流,你在它的架子里干的很爽但是想自己倒腾点东西就比较麻烦。
ps. 我之前写过一段时间UE4的Plugin,那个C++ Hot Load完全无效...我猜测是因为启动引擎的时候就handler注册进去了,最后导致我改一点就要重启一下Editor。Unity用C#写Plugin就非常的爽,它那套序列化机制能基本满足我所有的需求(对我这里就不吐槽UE4的编译速度了...毕竟我穷)
linear colorspacesigned distance shadowPBR相关的,譬如物理光照强度、一些BRDF模型等post process stack (github上Unity官方放出来那个我看了,但还是推荐看一下UE4有一个叫Next-gen Mobile Rendering的分享)
很多细节累计起来就造成了不少的差距...
ps. 还有一点想吐槽的是,UE4的门槛高一些,而且流程相对固定;而U3D的易上手+灵活导致一些开发者会滥用,然后把锅甩给引擎。那个,我再举个栗子就是譬如什么泰坦什么陨落什么6...可以参考挖坑不填的 @Vinjn张静 的完爆四路泰坦的《仙剑奇侠传六》技术评测(一)
首先说引擎因素:
Unity是一个比较紧跟风头的引擎,最近几年,接连跟了手游、VR、AI的风头,但是毕竟公司能量有限(貌似现在非常有钱,到处挖人),难免顾此失彼。这也是我一贯的观点:凡是一揽子解决方案,那么多数都会沦为中庸的方案。而Unity已经不满足于将自己定位为一个游戏引擎,而是通用的商业引擎(参考:Unity已不再是我们眼中的那个“游戏”引擎)。
按照我同事的说法,Epic公司本身自己就是做游戏的,做游戏的同时顺带做个商业引擎出来,所以比较了解实际开发中用到了什么,而且会更快的引入新的技术,毕竟是针对PC端和Console的引擎,所以性能压力不会很大。而Unity的出发点就是做一个商业引擎,在人力有限的情况下,市场上需求不大的功能,我尽量不做。众所周知,Unity是借着手游的一波浪潮,站在了引擎市场的鳌头之上。就在前两年,满大街也找不到几个OpenGL ES 3.0+的手机,为什么要做GPU Instancing、GPU Particle System这样的东西?而这两年OpenGL ES 3.0+的手机开始得到普及,自然Unity也更新了相关的功能。