一种三维动画引擎的资源加载方法、装置及系统的制作方法_4

文档序号:9597687阅读:来源:国知局
应资源的依赖关系,若是,则进行步骤B;否则,在加载任务表中增加一个依赖信息加载的任务T1,并将该资源加载请求添加到任务T1中,然后执行步骤C; B、根据依赖信息表判断该资源对象的依赖对象是否已经加载,若是,则进行步骤C;否则在加载任务表中增加所有依赖对象的加载任务T2,并将该资源加载请求添加到加载任务T2的请求列表中,然后执行步骤C ; C、在待加载队列中添加该资源的加载任务T3; D、根据加载任务表进行资源加载; E、判断待加载队列是否为空,若是,结束本流程;否则,从待加载队列中取出一定数量的任务,添加到加载任务表中,返回步骤D。3.根据权利要求2所述的方法,其特征在于,步骤A之前进一步包括: 判断待加载队列中是否已经存在对应资源的加载任务,是则将该请求添加到待加载队列中的所述加载任务的请求列表中,然后执行步骤D ;否则直接执行步骤A。4.根据权利要求2所述的方法,其特征在于,步骤A之前进一步包括: 对于资源加载请求,判断加载任务表中面是否已经存在对应资源的加载任务,若是,则将该资源加载请求添加到加载任务表中的所述加载任务的请求列表中,然后执行步骤D;否则进行步骤A。5.根据权利要求2至4任一项所述的方法,其特征在于,步骤A之前进一步包括: 对于资源加载请求,判断资源对象表中是否已经存在对应的加载完毕、可以直接进行使用的资源对象,是则增加资源对象表中该对象的引用计数,并直接返回该资源对象的处理,结束该资源加载请求;否则进行步骤A。6.根据权利要求5所述的方法,其特征在于,步骤D包括: D1、判断加载任务的类型,如果为T1,执行步骤D2,如果为T2,执行步骤D3 ;如果为T3,执行步骤D4 ; D2、对于依赖信息加载任务T1,从目标资源包中加载依赖信息并将所述依赖信息加入依赖信息表,然后依次处理该任务所包含的所有资源加载请求,然后执行步骤D5 ; D3、对于所有依赖对象的加载任务T2,从依赖资源包中加载该加载任务对应的资源对象,将所述资源对象加入资源对象表并添加引用计数。加载结束后,依次处理该任务所包含的所有资源请求:当请求资源的依赖资源全部加载完毕后,执行步骤D5 ; D4、对于资源的加载任务T3,从包中加载该加载任务对应的资源对象,将所述资源对象加入资源对象表并添加引用计数。加载结束后,依次处理该任务所包含的所有资源请求,然后对客户端返回该资源对象的处理结果; D5、判断加载任务表中是否还有未处理的任务,若是,返回步骤D1,否则执行步骤E。7.根据权利要求1至4任一项所述的方法,其特征在于,在服务器侧和客户端侧,分别通过一个包信息列表对本地的资源进行维护;步骤A之前进一步包括: 在客户端启动时,比较本地和服务器的包信息列表,判断两者的校验信息是否一致,若一致,不作进一步处理;若不一致,表明有包添加、删除或者修改,则删除不需要的包或者向服务器发送请求下载发生变更的包。8.根据权利要求5所述的方法,其特征在于,该方法进一步包括:每隔一段时间,对资源对象表进行遍历,检查其引用计数是否归0,并判断其是否为常驻内存的类型,对于引用计数为0的非常驻资源,对其进行卸载处理。9.根据权利要求1至4任一项所述的方法,其特征在于,所述三维动画引擎为Unity引擎。10.一种三维动画引擎的资源加载装置,其特征在于,该装置包括: 打包模块,用于在资源打包过程中,将需要打包的资源的依赖信息作为包的主资源,所述资源作为辅资源进行打包; 预加载模块,用于通过预加载目标资源的依赖信息来获取依赖关系; 资源加载模块,用于根据依赖关系加载目标资源的依赖资源和目标资源。11.根据权利要求10所述的装置,其特征在于,所述预加载模块包括:第一判断单元、第二判断单元、依赖信息加载任务单元和资源加载任务单元; 第一判断单元,用于判断依赖信息表中是否包含与资源加载请求对应的资源的依赖关系,若是,使能第二判断单元;否则,通知依赖信息加载任务单元在加载任务表中增加一个依赖信息加载的任务T1,并将该资源加载请求添加到任务T1中; 第二判断单元,用于根据依赖信息表判断该资源对象的依赖对象是否已经加载,若是,则通知资源加载任务单元在待加载队列中添加该资源的加载任务T3 ;否则,通知依赖信息加载任务单元在加载任务表中增加所有依赖对象的加载任务T2,并将该资源加载请求添加到加载任务T2的请求列表中;然后通知资源加载任务单元在待加载队列中添加该资源的加载任务T3;; 依赖关系加载任务单元,用于根据来自第一判断单元的通知,在加载任务表中增加依赖信息加载的任务T1,并将该资源加载请求添加到任务T1中;或者根据来自第二判断单元的通知,在加载任务表中增加所有依赖对象的加载任务T2,并将该资源加载请求添加到加载任务T2的请求列表中; 资源加载任务单元,用于根据来自第二判断单元的通知,在待加载队列中添加该资源的加载任务T3 ; 资源加载模块包括:加载单元和待加载任务处理单元; 加载单元,用于根据加载任务表进行资源加载; 待加载任务处理单元,用于在加载任务表中的任务处理完毕后,从待加载队列中取出一定数量的任务,添加到加载任务表中。12.根据权利要求11所述的装置,其特征在于,该装置进一步包括: 待加载判断模块,用于判断待加载队列中是否已经存在与资源加载请求对应的资源的加载任务,是则将该请求添加到待加载队列中的所述加载任务的请求列表中。13.根据权利要求11所述的装置,其特征在于,该装置进一步包括: 加载判断模块,用于判断加载任务表中面是否已经存在与资源加载请求对应的资源的加载任务,若是,则将该资源加载请求添加到加载任务表中的所述加载任务的请求列表中。14.根据权利要求11至13任一项所述的装置,其特征在于,该装置进一步包括: 已加载判断模块,用于判断资源对象表中是否已经存在与资源加载请求对应的加载完毕、可以直接进行使用的资源对象,是则增加资源对象表中该对象的引用计数,并直接返回该资源对象的处理。15.根据权利要求14所述的装置,其特征在于,加载单元包括: 任务类型判断子单元,用于判断加载任务的类型,如果为T1,使能第一加载子单元,如果为T2,使能第二加载子单元;如果为T3,使能第三加载子单元; 第一加载子单元,对于依赖信息加载任务T1,从目标资源包中加载依赖信息并将所述依赖信息加入依赖信息表,然后依次处理该任务所包含的所有资源加载请求; 第二加载子单元,对于所有依赖对象的加载任务T2,从依赖资源包中加载该加载任务对应的资源对象,将所述资源对象加入资源对象表并添加引用计数,加载结束后,依次处理该任务所包含的所有资源请求: 第三加载子单元,用于对于资源的加载任务T3,从包中加载该加载任务对应的资源对象,将所述资源对象加入资源对象表并添加引用计数。加载结束后,依次处理该任务所包含的所有资源请求,然后对客户端返回该资源对象的处理结果。16.根据权利要求14所述的装置,其特征在于,该装置进一步包括: 卸载处理模块,用于每隔一段时间,对资源对象表进行遍历,检查其引用计数是否归0,并判断其是否为常驻内存的类型,对于引用计数为0的非常驻资源,对其进行卸载处理。17.根据权利要求10至13任一项所述的装置,其特征在于,所述三维动画引擎为Unity引擎。18.—种三维动画引擎的资源加载系统,其特征在于,该系统包括客户端和服务器,所述客户端包括如权利要求10至13任一项所述的三维动画引擎的资源加载装置; 所述服务器包括: 资源维护模块,用于存储资源,通过一个包信息列表对服务器本地的资源进行维护; 所述客户端还包括: 客户端同步模块,用于通过一个包信息列表对客户端本地的资源进行维护;在客户端启动时,比较本地和服务器的包信息列表,判断两者的校验信息是否一致,若一致,不作进一步处理;若不一致,表明有包添加、删除或者修改,则删除不需要的包或者向服务器发送请求下载发生变更的包。
【专利摘要】本申请公开了一种三维动画引擎的资源加载方法,在资源打包过程中,将需要打包的资源的依赖信息作为包的主资源,所述资源作为辅资源进行打包,该加载方法包括:先通过预加载目标资源的依赖信息来获取依赖关系,然后再根据依赖关系加载目标资源的依赖资源和目标资源。本申请还公开了三维动画引擎的资源加载的装置和系统。本申请方案能够很好管理资源的依赖关系,提升开发效率。
【IPC分类】G06F9/445
【公开号】CN105354049
【申请号】CN201510632720
【发明人】屠倩溪, 张精卫
【申请人】北京畅游天下网络技术有限公司
【公开日】2016年2月24日
【申请日】2015年9月29日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1