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

文档序号:9597687阅读:来源:国知局
,依次处理该任务所包含的所有资源加载请求:即将之前请求加载但依赖信息并未到位的资源进行加载。
[0098]对于资源加载任务,从包中加载对应资源对象,加入资源对象表并添加引用计数。加载结束后,依次处理该任务所包含的所有资源请求:如果该任务加载的是依赖资源(任务类型T2),则判断请求资源的依赖资源是否全部加载完毕,是则增加请求资源的加载任务T3 ;如果该任务加载的是客户端请求的资源(任务类型T3),则对客户端返回该资源对象的处理。
[0099]在本申请的又一个实施例中,资源集中保存在服务器上,并且在服务器侧对资源进行集中维护和更新,客户端侧保存本机所需要的资源。一个或多个客户端与服务器连接,从服务器获取资源。在这种情况下,在资源加载之前,需要进行客户端与服务器的资源同步。
[0100]在服务器侧和客户端侧,分别通过一个包信息列表对本地的资源进行维护。在客户端启动时,比较本地和服务器的包信息列表,判断两者的校验信息是否一致,若一致,说明本地的包与服务器中的包是一致的,不作进一步处理;若不一致,表明有包添加、删除或者修改,则删除不需要的包或者向服务器发送请求下载发生变更的包。当客户端的所有资源更新至与服务器一致时,才能运行客户端逻辑,此时资源加载模块开始正式处理客户端的资源加载请求,根据需求加载已经下载到本地的资源。
[0101]在本申请的另一个实施例中,资源加载模块会记录每个包和每个资源的引用计数。每隔一段时间,对包缓存表和资源对象表进行遍历,检查其引用计数是否归0,并判断其是否为常驻内存的类型,对于引用计数为0的非常驻资源,对其进行卸载处理,避免内存浪费。
[0102]本申请的又一个实施例还提供了一种Unity资源加载装置,如图3所示,该装置300包括:
[0103]打包模块301,用于在资源打包过程中,将需要打包的资源的依赖信息作为包的主资源,所述资源作为辅资源进行打包;
[0104]预加载模块302,用于通过预加载目标资源的依赖信息来获取依赖关系;
[0105]资源加载模块303,用于根据依赖关系加载目标资源的依赖资源和目标资源。
[0106]较佳地,所述预加载模块302包括:第一判断单元、第二判断单元、依赖信息加载任务单元和资源加载任务单元;
[0107]第一判断单元,用于判断依赖信息表中是否包含与资源加载请求对应的资源的依赖关系,若是,使能第二判断单元;否则,通知依赖信息加载任务单元在加载任务表中增加一个依赖信息加载的任务T1,并将该资源加载请求添加到任务T1中;
[0108]第二判断单元,用于根据依赖信息表判断该资源对象的依赖对象是否已经加载,若是,则通知资源加载任务单元在待加载队列中添加该资源的加载任务T3;否则,通知依赖信息加载任务单元在加载任务表中增加所有依赖对象的加载任务T2,并将该资源加载请求添加到加载任务T2的请求列表中;然后通知资源加载任务单元在待加载队列中添加该资源的加载任务T3;;
[0109]依赖关系加载任务单元,用于根据来自第一判断单元的通知,在加载任务表中增加依赖信息加载的任务T1,并将该资源加载请求添加到任务T1中;或者根据来自第二判断单元的通知,在加载任务表中增加所有依赖对象的加载任务T2,并将该资源加载请求添加到加载任务T2的请求列表中;
[0110]资源加载任务单元,用于根据来自第二判断单元的通知,在待加载队列中添加该资源的加载任务T3;
[0111]资源加载模块包括:加载单元和待加载任务处理单元;
[0112]加载单元,用于根据加载任务表进行资源加载;
[0113]待加载任务处理单元,用于在加载任务表中的任务处理完毕后,从待加载队列中取出一定数量的任务,添加到加载任务表中。
[0114]可选地,该装置300进一步包括:
[0115]待加载判断模块304,用于判断待加载队列中是否已经存在与资源加载请求对应的资源的加载任务,是则将该请求添加到待加载队列中的所述加载任务的请求列表中。
[0116]可选地,该装置300进一步包括:
[0117]加载判断模块305,用于判断加载任务表中面是否已经存在与资源加载请求对应的资源的加载任务,若是,则将该资源加载请求添加到加载任务表中的所述加载任务的请求列表中。
[0118]可选地,该装置300进一步包括:
[0119]已加载判断模块306,用于判断资源对象表中是否已经存在与资源加载请求对应的加载完毕、可以直接进行使用的资源对象,是则增加资源对象表中该对象的引用计数,并直接返回该资源对象的处理。
[0120]可选地,加载单元包括:
[0121]任务类型判断子单元,用于判断加载任务的类型,如果为T1,使能第一加载子单元,如果为T2,使能第二加载子单元;如果为T3,使能第三加载子单元;
[0122]第一加载子单元,对于依赖信息加载任务T1,从目标资源包中加载依赖信息并将所述依赖信息加入依赖信息表,然后依次处理该任务所包含的所有资源加载请求;
[0123]第二加载子单元,对于所有依赖对象的加载任务T2,从依赖资源包中加载该加载任务对应的资源对象,将所述资源对象加入资源对象表并添加引用计数,加载结束后,依次处理该任务所包含的所有资源请求:
[0124]第三加载子单元,用于对于资源的加载任务T3,从包中加载该加载任务对应的资源对象,将所述资源对象加入资源对象表并添加引用计数。加载结束后,依次处理该任务所包含的所有资源请求,然后对客户端返回该资源对象的处理结果。
[0125]可选地,该装置300进一步包括:
[0126]卸载处理模块307,用于每隔一段时间,对资源对象表进行遍历,检查其引用计数是否归0,并判断其是否为常驻内存的类型,对于引用计数为0的非常驻资源,对其进行卸载处理。
[0127]本申请实施例还提供了一种Unity资源加载系统,该系统包括客户端和服务器,所述客户端包括之前的实施例公开的Unity资源加载装置;
[0128]所述服务器包括:
[0129]资源维护模块,用于存储资源,通过一个包信息列表对服务器本地的资源进行维护;
[0130]所述客户端还包括:
[0131]客户端同步模块,用于通过一个包信息列表对客户端本地的资源进行维护;在客户端启动时,比较本地和服务器的包信息列表,判断两者的校验信息是否一致,若一致,不作进一步处理;若不一致,表明有包添加、删除或者修改,则删除不需要的包或者向服务器发送请求下载发生变更的包。
[0132]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对【背景技术】做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0133]本领域技术人员将理解,尽管以连续的顺序画出流程图以便理解,但在实际实现中可以并行地执行某些步骤。更进一步,除非另外说明,否则可以在不脱离本发明范围的情况下对方法步骤进行互换。
[0134]应当理解,虽然本说明书是按照各个实施方式描述的,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
[0135]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,凡在本申请技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【主权项】
1.一种三维动画引擎的资源加载方法,其特征在于,在资源打包过程中,将需要打包的资源的依赖信息作为包的主资源,所述资源作为辅资源进行打包,该加载方法包括:先通过预加载目标资源的依赖信息来获取依赖关系,然后再根据依赖关系加载目标资源的依赖资源和目标资源。2.根据权利要求1所述的方法,其特征在于,所述先通过预加载目标资源的依赖信息来获取依赖关系,然后再根据依赖关系加载目标资源的依赖资源和目标资源包括: A、对于资源加载请求,判断依赖信息表中是否包含对
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1