天龙客户端的ResourceManager

时间:2021-12-21 19:26:11

  今天培训的时候,Leader针对项目结构讲了很多分层架构的思想,思路,对我而言有很大的助益,学会了将需求分层,或者说先设计出各个层次,然后有需求后落实到对应的层次上,尤其对于刚开始的架构设计阶段,能把该往引擎层放的东西及时沉淀下去(沉淀这个词很有意思)并抽象出接口, 这样算是开始从需求到架构的思考了。

  天龙实现的ResourceManager继承自Monobehaviour,但没有用到此脚本的生命周期函数,难道是想挂到一个GameObject上,但又有什么用处呢,不明白这里继承的设计思想。看起来ResourceManager主要是对Unity的Resource.Load的封装,可以实现对Resource类型资源的加载,实例化等,值得学习的是加载和卸载接口齐全,说明发布的时候已经充分考虑内存的问题了。这里就有一个疑问,Unity官方推荐用AssetBundle,理论上说本地可以用不到这种资源,这种Resource.load方式有什么优势?

  从细节上看,对Resource.load出来的GameObject做了引用计数的管理,而且所有的接口都是静态方法,实现了很多看起来奇葩的方法。可能是头像信息,某些UI资源,界面上的一些对象等,这类资源的详细用处,需要在逻辑块再详细看看。未来项目里还用不用这种资源管理方式,暂时就不讨论了。

  我现在项目里其实用到的已经很少了,下一步都想废掉这个管理方式,看来还得再细细想想。