发明内容
为针对上述现有技术的不足,本发明提供了一种基于Unity的包体冗余资源分析方法及其装置,可以有效减少游戏包体内的冗余资源,降低包体体积,提升游戏推广效果。
本发明为解决技术问题所采用的技术方案为:
一种基于Unity的包体冗余资源分析方法,其特征在于,包括以下步骤:
S1、加载预设信息并初始化程序;
S2、遍历目标游戏并生成一级资源列表;
S3、分析所述一级资源列表,根据分析结果生成二级资源列表;
S4、遍历目标包体并生成包体资源列表,将所述二级资源列表和所述包体资源列表进行匹配;
S5、对匹配结果进行检测,根据检测结果生成分析报告并上传所述分析报告至服务器。
进一步,所述预设信息包括下面至少一项:游戏资源库、包体资源库。
进一步,步骤S2还包括调用所述游戏资源库中的所述目标游戏,对所述目标游戏执行遍历操作,生成所述目标游戏运行必须引用的一级资源集合,根据所述一级资源集合生成所述一级资源列表。
进一步,所述一级资源列表中的一级资源指游戏运行需要直接引用的资源。
进一步,步骤S3还包括调用所述一级资源列表,根据列表中所述一级资源的引用关系进行试运行,生成所述一级资源运行必须引用的二级资源集合,根据所述二级资源集合生成所述二级资源列表。
进一步,所述二级资源列表包含所述一级资源列表的信息。
进一步,所述目标包体调用于所述包体资源库。
进一步,步骤S5还包括对所述匹配结果中存在于所述包体资源列表但不存在于所述二级资源列表的资源进行试运行,若所述检测结果为不影响游戏正常运行,则将该资源标注为冗余信息并将资源信息写入所述分析报告;若所述检测结果为影响游戏正常运行,则对该资源不进行操作。
一种基于Unity的包体冗余资源分析装置,其特征在于,包括以下模块:
初始化模块,用于加载预设信息并初始化程序;一级资源列表生成模块,用于遍历目标游戏并生成一级资源列表;二级资源列表生成模块,用于分析所述一级资源列表,根据分析结果生成二级资源列表;匹配模块,用于遍历目标包体并生成包体资源列表,将所述二级资源列表和所述包体资源列表进行匹配;以及检测模块,用于对匹配结果进行检测,根据检测结果生成分析报告并上传所述分析报告至服务器。
一种计算机可读存储介质,其上存储有计算机指令,其特征在于该指令被处理器执行时实现上述方法中的任一步骤。
本发明的有益效果为:可以有效减少游戏包体内的冗余资源,降低包体体积,提升游戏推广效果。
具体实施方式
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
需要说明的是,如无特殊声明,在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个的所列项目的任意的组合。
应当理解,本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
为方便于更好的理解本技术方案,对部分技术名词予以解释,具体表述如下:
Unity,即Unity 3D,是由Unity Technologies开发的一个创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,同样也是一个较为全面整合的专业游戏引擎。
Unity类似于Director,Blender game engine,Virtools或Torque Game Builder等利用交互的图型化开发环境为首要方式的软件;其编辑器运行在Windows和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、Windows phone 8和Android平台;也可以利用Unity web player插件发布网页游戏,支持Mac和Windows的网页浏览;它的网页播放器也被Mac所支持;在本技术方案中,Unity主要用作IOS以及Android平台下的游戏开发,也就是我们常说的手游。
预设信息:指在系统初始化阶段,通过触屏、键盘或其他交互形式对系统在执行后续工作时需要预先设置的功能或输入的信息。
接下来结合附图对本发明的具体实施例作进一步说明:
参照图1所示为根据本发明的总体流程图,包括以下步骤:
S1、加载预设信息并初始化程序;此处所提及的预设信息包括但不限于游戏资源库、包体资源库;所引用的目标游戏和目标包体应当是对应的;
S2、遍历目标游戏并生成一级资源列表;具体地,首先调用所述游戏资源库中的所述目标游戏,对所述目标游戏执行遍历操作,生成所述目标游戏运行必须引用的一级资源集合,根据所述一级资源集合生成所述一级资源列表;所述一级资源列表中的一级资源指游戏运行需要直接引用的资源,即只需要一次引用即可调用的资源;
S3、分析所述一级资源列表,根据分析结果生成二级资源列表;具体地,首先调用所述一级资源列表,根据列表中所述一级资源的引用关系进行试运行,生成所述一级资源运行必须引用的二级资源集合,根据所述二级资源集合生成所述二级资源列表;所述二级资源列表包含所述一级资源列表的信息,即二级资源列表是在一级资源列表的基础上补充资源信息后生成的;因为在游戏的实际运行中,代码及配置直接调用的资源并非游戏内的全部资源,部分资源的展示需要通过二次调用其他资源文件来实现;
S4、遍历目标包体并生成包体资源列表,将所述二级资源列表和所述包体资源列表进行匹配;所述目标包体则调用于所述包体资源库;
S5、对匹配结果进行检测,根据检测结果生成分析报告并上传所述分析报告至服务器;具体地,首先对所述匹配结果中存在于所述包体资源列表但不存在于所述二级资源列表的资源进行试运行,若所述检测结果为不影响游戏正常运行,则将该资源标注为冗余信息并将资源信息写入所述分析报告;若所述检测结果为影响游戏正常运行,则对该资源不进行操作。
参照图2所示为根据本发明的装置连接图,具体包括以下模块:
初始化模块,用于加载预设信息并初始化程序;一级资源列表生成模块,与初始化模块连接实现交互,用于遍历目标游戏并生成一级资源列表;二级资源列表生成模块,与一级资源列表生成模块连接实现交互,用于分析所述一级资源列表,根据分析结果生成二级资源列表;匹配模块,与初始化模块、二级资源列表生成模块连接实现交互,用于遍历目标包体并生成包体资源列表,将所述二级资源列表和所述包体资源列表进行匹配;以及检测模块,与匹配模块连接实现交互,用于对匹配结果进行检测,根据检测结果生成分析报告并上传所述分析报告至服务器。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。