2020-12-15 00:12:49 +08:00
2020-12-15 00:12:49 +08:00
2019-10-07 16:29:45 +08:00
2020-12-13 22:28:25 +08:00
2019-10-07 10:09:23 +08:00
2019-10-03 10:14:06 +08:00
2020-09-18 21:56:46 +08:00
2019-10-07 10:09:23 +08:00
2019-10-07 10:09:23 +08:00
2019-10-19 21:14:49 +08:00

cocos creator 框架 -- kxCreator

关于creator 2.4 新资源框架的一些思考

新的资源框架引入了AssetBundle的设计这个设计的优点有很多

  • 非常便捷的分包,极大降低了小游戏或应用的首包体积
  • 加快了首场景的加载速度,特别是资源较多的游戏
  • 可以让开发中更加灵活的规划资源

但同时也引入了一些复杂度比如bundle之间的依赖性还有在使用资源的时候我需要知道每个资源是在哪个bundle中这使代码变得复杂了一些。

bundle的规划和依赖性问题取决于项目框架可能需要解决依赖性的问题在代码中隐藏bundle之间的依赖关系调用者只需要关心当前要加载的资源所在的bundle即可。

是否可以让调用者连当前资源所在的bundle也无需关心呢

方式1制定一个目录的规则让url中有足够的信息可以定位bundle但这种方式会让url很奇怪比如有些是本地bundle、有些是远程bundle、而且对目录有一定要求实际上是增加了潜规则 方式2走资源配置的形式比如加载某资源id这个id可以对应配置中的配置项包含bundle和url可能很多项目会有类似的资源加载配置

按照2.4的设计让使用者知道bundle这一层可能并不是一件糟糕的事情不论是本地还是远程bundle在加载bundle的时候只需要使用bundle名称即可

写在前面

我对框架对一点理解,所谓框架,浅薄一点地说,只是将一些常用的代码进行封装,方便我们少写一点代码,更快地完成功能开发。但有的框架用起来舒坦,有的用起来令人令人感觉繁琐、压抑。希望这一堆代码,可以提高你的开发效率,并规避一些繁琐易错的问题。

有2个问题是我们在平时编码的时候总是会困扰我们的问题一个是生命周期的管理问题一个是数据的读写问题。这两个问题决定了我们能否轻松地实现各种功能对于生命周期管理问题最好的方式是不用管理让框架自动帮我们做这件事同时也能支持让我们手动控制某些我们希望控制的地方。

核心框架

  • 资源管理
    • ResLoader资源的加载和卸载支持资源依赖的识别
    • PrefabPoolPrefab的简单池子用于优化大量重复创建的对象
  • 网络框架
  • UI框架
  • 通用
    • EventManager: 事件机制的支持
    • TaskQueue: 任务队列的支持(确保有序地执行逻辑)
  • todo: 热更新
  • todo: 新手引导框架

示例项目

  • 基础示例
    • 网络功能示例 参考 Scene/example_net 场景
    • 资源管理示例 参考 Scene/example_res 场景
    • UI示例 参考 Scene/example_ui 场景
    • ...
  • 完整游戏示例

工具

...

Description
cocos creator 基础框架,包含资源、ui管理,网络模块
Readme 64 MiB
Languages
TypeScript 100%