我一直都认为是需要的,可是了解越多人的想法,越让我觉得可能需要再深度去考虑一下.做unity开发已经10年了,在unity之前还做过几年的C游戏开发.那时候还是用OGRE,或者是基于OpenGL写的自研引擎.说是自研引擎,实际上也是实现了一些3D和2D的封装,写了一个UI的编辑器.勉强能够支撑一个小项目开发了.那时候真的做什么都很困难,什么都要自己从头写.但是也好在积累了一些底层的经验.虽然不算多.能够看到3D的场景正常在窗口中渲染出来,能够看到加载过程非常流畅而且迅速,能够去掌握每一行代码,真的很令人满足.不过那已经是过去了,现在一直在用unity,大多数功能开箱即用,随手就能够实现需求.确实比以前要好太多了.不过历史总是在重复,在使用的过程中必然也会发现各种不好用的地方,或者总是遗漏的地方,或者是总是写重复代码的地方.于是自然而然得去封装了起来,目的只是为了避免自己再次去踩坑,以及不要再写那些重复冗余的代码.引擎本身就是对重复代码的封装,功能底层的支持.减少编写重复代码.那在引擎的基础上再封装一层算什么呢?万物皆是框架前段时间刷知乎又刷到了我之前回答过的一篇文章,本意只是想渲染一下自己写的框架,发一下介绍.但是我仔细去看了别人的回答,心情比较复杂.https://www.zhihu.com/question/1923551142039754211其他类似的回答很多,看完以后我不禁产生了很多疑问.什么是框架google了一下框架英文的解释框架就是Framework,很多名字中带Framework的其实就是一个框架,作为整个程序开发的基础.所以那些回答里说的各个对于特定问题的插件,比如官方的UGUI,TextMeshPro,Addressable,DoTween,我很难把他们归类到框架里面.顶多算是框架的一个组成部分.再看看其他回答的框架无用论我也不知道该怎么去评论,他们说的没错,但是真的有人这么干吗?是真的有人会这么干!就我这些年见过的项目中,这种例子数不胜数.赚钱的,不赚钱的,规模小的,规模大的.都是这样.不做框架似乎成为了一个共识.那做完了一个成功项目,做下一个项目怎么办,没有框架,代码全部都耦合在一起.于是就把旧代码复制一份,删除之前的逻辑,写上新的逻辑.但是回到软件工程的各个经验之谈,各个设计模式,各种前辈经验,又似乎跟上面的完全不一样,解耦,抽象,Dont Repeat Yourself,封装,高性能,零GC.到底哪个才是真实的世界,正确的世界?然后看看真的在讨论框架的那几个回答GameFramework算的上真正意义的框架,虽然已经好几年不更新了,也还是会有很多人会提起它.我没用过.实际上我没用过除了我自己以外的任何框架.但是我始终认为他们肯定有他们的优势.无论是ET,还是GameFramework,TEngine等其他的框架,都为很多人减少了大量的工作量.作用是毋庸置疑的.我也将我的疑惑在群里问了一下.虽然进了这个群的肯定都是对框架持肯定态度的人,不能代表其他人.我确实不相信他们不用框架的人每写一个项目都是新建工程,然后就继承MonoBehaviour开始写.除非是他们以前写的代码是完全耦合,完全无法复用的.他们写了一个又一个项目,从头写了一个又一个游戏,逐渐发现有些方法,有些类,有些模式和设计思路一直都不变.于是想起来抽象出来,复用到下一个游戏,逐渐形成了一套可复用的底层代码.就好像引擎的诞生过程,从重复代码的抽象,通用逻辑的实现,形成一个个开箱即用的工具,整个到一个引擎中,指定一套代码编写规范,程序设计思路.最终形成可以通用的商业引擎,Unreal,Unity,Cocos....