The invention discloses an object resource processing method, device and system, the application in the deleted scene object, further analysis of the referenced object classification resources, reference classification resources on target in the deleted scenes after the object is updated, the citation amount according to the updated target resources, determine the amount of said reference is not any scene object reference resources target classification, and then remove the target classification resources from memory, in which each scene object has been created under the normal operation condition greatly reduces the memory occupancy.
【技术实现步骤摘要】
一种对象资源处理方法、装置及系统
本申请涉及资源处理处理
,更具体地说,涉及一种对象资源处理方法、装置及系统。
技术介绍
随着互联网的发展,各种类型的应用也如雨后春笋般出现,为用户提供了多样化的网络业务,如视频业务、游戏业务、网络直播业务等等,极大的丰富了用户的生活。应用业务场景中,每产生一个新的场景对象都会调用各分类资源,以游戏业务为例,游戏场景中的角色的创建会调用动画控制器资源、模型网络资源、材质资源、纹理资源等。各分类资源可以同时被多个场景对象所调用,因此,在创建一个场景对象时,如果该场景对象所调用的分类资源已经加载入内存,则可以直接使用,否则,需要将对应的分类资源载入内存中。而在确定某一场景对象需要被删除时,为了避免该场景对象所调用的分类资源同时被其它场景对象所调用,现有技术仅仅将场景对象本身删除,并未删除场景对象所调用的分类资源。进而伴随着场景对象的产生,载入内存中的分类资源也越来越多,导致应用占用内存过高。因此,现有技术亟需一种资源管理方案,以解决现有技术伴随场景对象的产生,内存占用过高的问题。
技术实现思路
有鉴于此,本申请提供了一种对象资源处理方法、装置及系统,以解决现有技术随场景对象的产生,应用内存占用过高的问题。为了实现上述目的,现提出的方案如下:一种对象资源处理方法,包括:在删除缓存中已创建的场景对象时,确定所述场景对象所引用的各目标分类资源;根据所述场景对象所引用的各目标分类资源,在删除所述场景对象后对所述各目标分类资源的引用量进行更新,得到本次更新后的各目标分类资源的引用量;其中,目标分类资源的引用量在引用该目标分类资源的各场景 ...
【技术保护点】
一种对象资源处理方法,其特征在于,包括:在删除缓存中已创建的场景对象时,确定所述场景对象所引用的各目标分类资源;根据所述场景对象所引用的各目标分类资源,在删除所述场景对象后对所述各目标分类资源的引用量进行更新,得到本次更新后的各目标分类资源的引用量;其中,目标分类资源的引用量在引用该目标分类资源的各场景对象创建和删除时进行更新;根据本次更新后的各目标分类资源的引用量,确定引用量表示未被任何场景对象引用的目标分类资源;将确定的未被任何场景对象引用的目标分类资源从内存中删除。
【技术特征摘要】
1.一种对象资源处理方法,其特征在于,包括:在删除缓存中已创建的场景对象时,确定所述场景对象所引用的各目标分类资源;根据所述场景对象所引用的各目标分类资源,在删除所述场景对象后对所述各目标分类资源的引用量进行更新,得到本次更新后的各目标分类资源的引用量;其中,目标分类资源的引用量在引用该目标分类资源的各场景对象创建和删除时进行更新;根据本次更新后的各目标分类资源的引用量,确定引用量表示未被任何场景对象引用的目标分类资源;将确定的未被任何场景对象引用的目标分类资源从内存中删除。2.根据权利要求1所述的方法,其特征在于,所述场景对象为基于unity3D引擎所创建;所述场景对象包括对象实例以及预制件prefab,所述prefab用于在实例化后生成对象实例;所述在删除缓存中已创建的场景对象时,确定所述场景对象所引用的各目标分类资源,包括:在删除缓存中已创建的对象实例时,确定所述对象实例所引用的各分类资源,作为第一目标分类资源;确定删除所述对象实例后,实例化生成所述对象实例的prefab是否需要删除;其中,所述prefab用于在其实例化后得到的各对象实例均删除后进行删除;若是,删除所述prefab,并确定所述prefab所引用的各分类资源,作为第二目标分类资源。3.根据权利要求2所述的方法,其特征在于,所述根据所述场景对象所引用的各目标分类资源,在删除所述场景对象后对所述各目标分类资源的引用量进行更新,包括:根据所述对象实例所引用的各第一目标分类资源,在删除所述对象实例后对各第一目标分类资源的引用量进行更新,得到本次更新后的各第一目标分类资源的引用量;根据prefab所引用的各第二目标分类资源,在删除所述prefab后对各第二目标分类资源的引用量进行更新,得到本次更新后的各第二目标分类资源的引用量。4.根据权利要求3所述的方法,其特征在于,所述根据本次更新后的各目标分类资源的引用量,确定引用量表示未被任何场景对象引用的目标分类资源,包括:根据本次更新后的各第二目标分类资源的引用量,确定引用量表示未被任何对象实例及prefab引用的第二目标分类资源。5.根据权利要求2所述的方法,其特征在于,所述分类资源包括纹理Texture分类资源;确定对象实例在Texture分类资源中所引用的目标Texture的过程,包括:确定所述对象实例创建过程所使用的着色器Shader;获取与所述Shader对应的纹理名单,所述纹理名单包括对应的Shader在创建所述对象实例时所使用的各纹理的标识;通过unity3D引擎所提供的纹理获取接口,输入所述纹理名单中各纹理的标识,以得到unity3D引擎返回的与各标识对应的目标纹理Texture。6.根据权利要求2所述的方法,其特征在于,所述将确定的未被任何场景对象引用的目标分类资源从内存中删除,包括:调用unity3D引擎提供的Resources.UnloadAsset()方法,将确定的未被任何场景对象引用的目标分类资源从内存中删除。7.根据权利要求1-6任一项所述的方法,其特征在于,还包括:在确定应用场景内存在角色退出当前场景界面时,确定需要将与所述角色对应的场景对象进行缓存;判断缓存队列是否已满;若是,从所述缓存队列中确定一场景对象进行删除,以将与所述角色对应的场景对象存入缓存队列中,并执行所述在...
【专利技术属性】
技术研发人员:肖盾,李晨,刘晓东,张钧,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。