[发明专利]一种Unity3D运行时资源管理方法和装置有效
申请号: | 201810063269.2 | 申请日: | 2018-01-23 |
公开(公告)号: | CN108376101B | 公开(公告)日: | 2022-06-07 |
发明(设计)人: | 江卓浩;吴海权;李茂;黄龙程 | 申请(专利权)人: | 珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 俞梁清 |
地址: | 519000 广东省珠海市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 unity3d 运行 资源管理 方法 装置 | ||
本发明公开了一种Unity3D运行时资源管理方法,包括以下步骤:以有向图的方式对Unity3D运行时资源的依赖、引用状况进行建模;查找无父节点的GameObject对象,将其视为根集;将所有AssetBundle节点设置为不可达状态;从根集出发,递归遍历所有图节点,将途经的AssetBundle节点设置为可达状态;释放被标记为不可达状态的AssetBundle的资源。本发明的有益效果为:基于Unity3D引擎提供的AssetBundle对象管理机制,实现一种运行时资源自动回收方法。达到开发过程中,开发人员只需关注资源分配,无需人工释放的目的。
技术领域
本发明涉及游戏开发技术领域,尤其涉及一种Unity3D运行时资源管理方法和装置。
背景技术
在网络游戏开发中,AssetBundle是Unity pro提供的一种用来存储资源的文件格式,它可以存储任意一种Unity引擎能够识别的资源,如Scene、Mesh、Material、Texture、Audio、noxss等等,同时,AssetBundle也可以包含开发者自定义的二进制文件,只需要将自定义文件的扩展名改为.bytes,Unity就可以把它识别为TextAsset,进而就可以被打包到AssetBundle中。Unity引擎所能识别的资源我们称为Asset,AssetBundle就是Asset的一个集合。现有的游戏客户端通常包括游戏运行时所需的所有游戏资源,例如,图片、音频和视频等资源。这些资源通常采用打AssetBundle包方式存储,从而获得传输方便、资源保密、以及更加快速访问速度等优点。
游戏中的所有对象本质上都是游戏对象(GameObject),游戏对象(GameObject)自身不会向游戏添加任何特性,而是容纳实现实际功能的组件(Component)的容器。例如,光(Light)是一个附加到游戏对象(GameObject)的组件(Component),Component(组件)是用来添加到GameObject对象上的一组相关属性,本质上每个组件都是一个类的实例,比如在Cube上添加一个Mesh网格,即面向对象的思维方式可以理解成Cube对象里包含了一个Mesh对象。Component主要包含以下组件:Mesh:添加网格类型的组件、Effects:添加特效类型组件、Physics:添加物理类型组件、Navigation:添加导航类型组件(比如自动寻路)等等。
Unity3D引擎提供的资源管理组件(AssetBundle)仅提供了最基础的资源生命周期控制接口,实际项目开发一般需要高度封装,使用过程中诸多不便,对开发人员的工程管理能力有较高要求。常见资源管理方法为对资源增加引用计数方式,每一个运行时对象对资源增加引用关系,则计数加1,解除引用则减1,计数为0则释放。引用计数方法需要精确成对操作,操作不匹配可能出现内存泄露或者资源丢失。引用计数无法处理循环引用情况。因此,需要提供一种基于Unity3D引擎提供的AssetBundle对象管理机制,实现资源的自动回收。
发明内容
本发明的目的是解决现有技术的不足,提供一种Unity3D运行时资源管理方法和装置,能够获得对资源自动回收,无需人工释放的效果。
为了实现上述目的,本发明采用以下的技术方案:
首先,在本发明的一个方法实施例中,提出一种Unity3D运行时资源管理方法,包括以下步骤:
S100,以有向图的方式对Unity3D运行时资源的依赖、引用状况进行建模;
S200,查找无父节点的GameObject对象;
S300,将所有AssetBundle节点设置为不可达状态;
S400,从无父节点的GameObject出发,递归遍历所有图节点,将途经的AssetBundle节点设置为可达状态;
S500,释放被标记为不可达状态的AssetBundle的资源。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司,未经珠海金山网络游戏科技有限公司;广州西山居世游网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810063269.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于安全的容器调度
- 下一篇:资源分配的系统、方法及非暂时性计算机可读媒体