一种对象资源处理方法、装置及系统制造方法及图纸

技术编号:15437043 阅读:81 留言:0更新日期:2017-05-25 19:15
本申请公开了一种对象资源处理方法、装置及系统,本申请在删除场景对象时,进一步分析其所引用的目标分类资源,在删除场景对象后对目标分类资源的引用量进行更新,根据更新后的目标分类资源的引用量,确定引用量表示未被任何场景对象引用的目标分类资源,进而将该目标分类资源从内存中删除,在保证了已创建的各场景对象正常运行的情况下,大大降低了内存的占用。

Object resource processing method, device and system

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为本申请示例的一种角色对象引用分类资源的示意图;图3为本申请实施例公开的另一种对象资源处理方法流程图;图4为本申请实施例公开的又一种对象资源处理方法流程图;图5为本申请实施例公开的又一种对象资源处理方法流程图;图6为本申请实施例公开的一种对象资源处理装置结构示意图;图7为本申请实施例公开的另一种对象资源处理装置结构示意图;图8为本申请实施例公开的一种终端设备硬件结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例公开了一种对象资源处理方案,应用于终端设备,终端设备。终端设备可以是手机、IPAD、电脑等可以运行应用客户端的设备。应用客户端所运行的业务场景中存在场景对象的创建和删除,本申请在删除场景对象时,进一步确定场景对象所引用的各目标分类资源,各目标分类资源对应设置有引用量,引用量能够在引用该目标分类资源的场景对象创建和删除时进行更新。进而,在确定目标分类资源的引用量表示该目标分类资源未被任何场景对象引用时,可以将该目标分类资源从内存中删除,降低应用内存占用。接下来的实施例中,对本申请的对象资源处理方法进行详细介绍,参见图1所示,该方法包括:步骤S100、在删除缓存中已创建的场景对象时,确定所述场景对象所引用的各目标分类资源;这里首先对分类资源进行介绍。根据应用的不同,应用内场景对象所引用的资源类型也不完全相同。本申请以一款游戏应用内角色所引用的资源进行说明,参见图2,其实例了一种角色对象的资源分解示意图。从图2可以看出,角色对象可以由Animator(动画组件)和SkinnedMeshRenderer(蒙皮网格渲染器)两种Component(组件)构成,两种组件分别可以分解为多个分类资源。其中,Animator可以分解为AnimatorController(动画控制器),而AnimatorController又可以进一步分解为AnimationClip(动画片段)和Avatar。SkinnedMeshRenderer可以分解为Mesh(模型网格)和Material(材质),其中Material又可以进一步分解为Texture(纹理)。如图2示例的,其中虚线框包含的即是角色对象所引用的各分类资源。包括:AnimatorC本文档来自技高网...
一种对象资源处理方法、装置及系统

【技术保护点】
一种对象资源处理方法,其特征在于,包括:在删除缓存中已创建的场景对象时,确定所述场景对象所引用的各目标分类资源;根据所述场景对象所引用的各目标分类资源,在删除所述场景对象后对所述各目标分类资源的引用量进行更新,得到本次更新后的各目标分类资源的引用量;其中,目标分类资源的引用量在引用该目标分类资源的各场景对象创建和删除时进行更新;根据本次更新后的各目标分类资源的引用量,确定引用量表示未被任何场景对象引用的目标分类资源;将确定的未被任何场景对象引用的目标分类资源从内存中删除。

【技术特征摘要】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1