资源管理系统

允我心安 提交于 2020-01-08 17:33:46

1)笔记

1)H5游戏资源加载的流程
  H5游戏,资源最开始是在网络服务器上;

  启动H5游戏-->从服务器上,第一个当前场景的依赖的资源,从远程服务器下载下来,并运行;
    a: 当前没有使用的资源,依然在服务器上;
    b: 你其它的模块的场景这些资源,也还会在服务器上;

  H5游戏,预加载: 
  	H5: 都有一个启动预加载,还没开始进入游戏场景,先加载;-->微信小游戏/H5 启动加载;

  	在场景切换的过程中:我们可以有2种方式做到资源预加载:
  	  加载资源比较多的切换,那么这个时候,我们会使用进度条进行处理;
  	  如果加载比较短,我们可加一个等待的方式,来处理,隐藏掉等待;

  框架,只有一个场景,每个模块会有自己的资源,资源管理;

  creator资源加载都是异步的,cc.loader.loadRes("", function(){在回到里面进行处理})

2)creator cc.loader异步,我们的策略
  (1)每个模块自己的 "场景" 的资源的依赖,由自己管理,资源配置表;
  (2)每个模块,都要有自己的预加载函数来加载我们的资源;
  (3)在切换的时候,我们要卸载当前模块的资源,如果你希望卸载的话;

  资源管理模块,是基于我们的场景模块集合的管理模式:
    step1:我们会定义一个资源集合包:{场景里面所需要的所有资源}
    step2: 预加载这个场景资源包
    step3:直接进去,这样子你就可以来使用已经加载好的资源;
    step4: 离开的时候,我们就可以释放这个资源包,如果内存允许,也可以不释放;



3)资源加载模块的实现
  (1)实现的资源加载模块是一个组件实例的单例模式;
  (2)cc.loader重要接口: 代码加载资源cc.loadRes(url); // url必须要在resources路径下;
  	 cc.release(资源对象, url, url数组均可)
  (3)预制体你要特别的注意: 因为预制体,他依赖其他的资源,所以你释放一个预制体,你还要释放他的依赖;
     cc.loader.获取依赖;



  骨骼动画等做成预制体即可;

  传进来是url,因此获取也是url

4)测试:添加第一次启动的资源
	creator进度条,第一次加载场景;
	creator场景里面只有一个空场景,黑了;
	预加载需要时间,所以有一段时间是黑的;
	  方法1: 绑定,在进度条的时候转载进来; 
	  		直接Prefab拖到编辑器上;

	  方法2: 启动页面,进入到你的第一个场景;

我的思考?
  预加载完后,图片, ab包, plist 在内存中存在形式是什么? 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!