虽然题主所在项目组不是做游戏的,但引擎使用上游戏制作与其实有部分一致。下面是回答与建议。
能高级定制,易用性更高
因为绝大部分代码是自有的,所以想怎么改就怎么改 ,完全根据需求来做调整,开发效率非常高。如果依赖于商业引擎,一方面是通用引擎,游戏开发者并没有引擎的源代码,对于定制化的需求无法满足,只能找到引擎的开发商;另一方面,这些通用引擎很多内容是“大而全”的,一个团队或许用不到很多功能,因此会造成功能上的浪费和效率上的减损。
某些需求使用unity学习成本高/效率低且团队具有一定技术力
unity本质上为商业通用引擎,所谓通用意味着在很多的技术实现上都会有妥协和权衡。当做具体的项目时就有可能面对很多要优化的地方,相比于花大量时间、精力去做优化,如果有很多团队有能力的话,自行开发新功能为优解。同时,项目开发实际上是一整个流水线的事情,引擎只是其中一个环节、一个工具。不同团队有不同的流水线,从这个角度来说是引擎适应项目流水线,而不是流水线强行适应引擎。
对于行业理解和工具链理解、个人技术主张的不同
本身有着极深的技术积累,有一套顺手且开发效率高的开发模式。对于自己造轮子还是使用现有的轮子(题主描述前辈用Unity的渲染模块),依据情况择优而用。使其在有限的投入的情况下,能最大限度满足自家产品的需求,还能快速和灵活反应。
建议:
熟练掌握unity的插件、API等,先站在巨人的肩膀上学习其中的原理、明白其优劣,才能知道在什么地方什么需求下用自己写/公司或团队/unity的插件更好,才能在自己写插件时有更好的借鉴及想法。学习现有引擎的目的,并非是为了未来不继续学习,而是为了了解自己过去未曾了解的理念,同时思考未来自己可以革新和研究的地方。跟着前辈做项目的同时,默默学习前辈的代码思想、开发思路等,尝试自己写做,经常进行总结思考。