[发明专利]一种Unity3D运行时资源管理方法和装置有效
申请号: | 201810063269.2 | 申请日: | 2018-01-23 |
公开(公告)号: | CN108376101B | 公开(公告)日: | 2022-06-07 |
发明(设计)人: | 江卓浩;吴海权;李茂;黄龙程 | 申请(专利权)人: | 珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 俞梁清 |
地址: | 519000 广东省珠海市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 unity3d 运行 资源管理 方法 装置 | ||
1.一种Unity3D运行时资源管理方法,其特征在于,包括以下步骤:
S100,以有向图的方式对Unity3D运行时资源的依赖、引用状况进行建模;
S200,查找无父节点的GameObject对象;
S300,将所有AssetBundle节点设置为不可达状态;
S400,从无父节点的GameObject出发,递归遍历所有图节点,将途经的AssetBundle节点设置为可达状态;
S500,释放被标记为不可达状态的AssetBundle的资源;
在AssetBundle对象中,使用LoadAsset接口取得Asset资源对象时,建立用于记录Asset资源与AssetBundle之间的引用关系的映射表;全局接管GameObject.Instantiate接口,对于取得实例化源对象对应的AssetBundle对象与引用该实例化源对象的GameObject对象,建立映射表,在映射表中记录AssetBundle和GameObject之间的引用关系;全局接管GameObject.Destroy接口,如果被销毁的对象是一个GameObject,且有与之绑定的AssetBundle对象时,则解除引用关系。
2.根据权利要求1所述的Unity3D运行时资源管理方法,其特征在于,还包括设置一个定时器,定时执行步骤S100至S500。
3.根据权利要求2所述的Unity3D运行时资源管理方法,其特征在于,步骤S400中还包括查询遍历过程中遇到的GameObject和Asset对象是否与AssetBundle对象是否存在引用关系,若存在引用关系,则将相关的AssetBundle对象的标记状态设置为可达。
4.根据权利要求1所述的Unity3D运行时资源管理方法,其特征在于,遍历的图节点包括GameObject所有子对象和Component组件。
5.根据权利要求4所述的Unity3D运行时资源管理方法,其特征在于,对定义了引用收集行为的Component组件进行引用收集。
6.根据权利要求1所述的Unity3D运行时资源管理方法,其特征在于,步骤S400递归遍历所有图节点是采用基于深度优先的遍历算法。
7.一种Unity3D运行时资源管理装置,用于执行如权利要求1至6任一项所述的方法,其特征在于,包括以下模块:
构建模块,用于以有向图的方式对Unity3D运行时资源的依赖、引用状况进行建模;
查找模块,用于查找无父节点的GameObject对象;
记录模块,用于记录AssetBundle节点的标记状态;
修改模块,用于从无父节点的GameObject对象出发,递归遍历所有图节点,将途经的AssetBundle节点设置为可达状态;
释放模块,释放被标记为不可达状态的AssetBundle的资源。
8.一种计算机可读存储介质,其上存储有计算机指令,其特征在于该指令被处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司,未经珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810063269.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于安全的容器调度
- 下一篇:资源分配的系统、方法及非暂时性计算机可读媒体