Unity打包Android生成aar的方法、系统及电子设备与流程

文档序号:29622269发布日期:2022-04-13 13:35阅读:500来源:国知局
Unity打包Android生成aar的方法、系统及电子设备与流程
unity打包android生成aar的方法、系统及电子设备
技术领域
1.本发明涉及软件研发技术领域,具体涉及一种unity打包android生成aar的方法、系统及电子设备。


背景技术:

2.unity作为一款游戏引擎和开发工具,是实时3d互动内容创作和运营平台,可以通过unity单工程打包aar(android archive),其中,aar包是一个android库项目的二进制归档文件。而当通过unity显示ar(augmented reality,增强现实)场景时,需要通过ar平台vuforia平面识别带ar功能。
3.然而,相关技术中常用的只有关于unity单工程打包android生成aar的方案,当需要unity含有vuforia平面识别带ar功能时,手动添加的vuforia无法识别ar场景,导致运行android项目后无法正常显示ar。
4.针对相关技术中unity含有vuforia平面识别带ar功能时无法正常显示ar的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明的主要目的在于提供一种unity打包android生成aar的方法及系统,以解决相关技术中unity含有vuforia平面识别带ar功能时无法正常显示ar的问题。
6.为了实现上述目的,本发明的第一方面提供了一种unity打包android生成aar的方法,适用于unity含有vuforia平面识别带ar场景,包括:
7.在unity中设置vuforia库取消包含的arcore插件,利用unity生成android项目,得到ar的第一aar文件;
8.打包unity的工程,生成发布版的aar包,得到unity的第二aar文件;
9.将所述第一aar文件和第二aar文件放入所述android项目中,并分别创建各个aar文件对应的工具构建文件,其中,所述各个aar文件为第一aar文件或第二aar文件中的文件;
10.根据预先创建的所有aar文件对应的配置构建文件,生成所有aar文件对应的模块,其中,所述所有aar文件包含第一aar文件和第二aar文件;
11.分别在各个aar文件对应的工具构建文件中引用所述模块;
12.在主工程对应的工具构建文件中添加ndk支持,运行所述android项目。
13.可选地,所述第一aar文件包括:vuforia库文件、arcore文件、unityarcore文件、权限文件;
14.所述在unity中设置vuforia库取消包含的arcore插件包括:
15.在unity中设置vuforia库取消勾选arcore选项,以避免所述vuforia库与第一aar文件中的arcore文件冲突。
16.可选地,所述打包unity的工程,生成发布版的aar包,得到unity的第二aar文件,
包括:
17.在unity的工程中进行打包,生成调试版的aar包;
18.在所述调试版的aar包调试通过后,得到发行版的aar包;
19.将所述发行版的aar包作为unity的第二aar文件,其中,所述第二aar文件包括unity场景调用文件。
20.可选地,所述将所述第一aar文件和第二aar文件放入所述android项目中,并分别创建各个aar文件对应的工具构建文件,包括:
21.在所述android项目的根目录下创建一级文件夹;
22.在所述一级文件夹中创建多个二级文件夹,并在各个二级文件夹中分别放入各自对应的aar文件;
23.在各个二级文件夹中,分别创建各个aar文件对应的工具构建文件,所述工具构建文件与处于相同层级的aar文件一一对应。
24.可选地,所述根据预先创建的所有aar文件对应的配置构建文件,生成所有aar文件对应的模块,包括:
25.预先在所述android项目的根目录下创建所有aar文件对应的配置构建文件;
26.将所述配置构建文件进行模块化,以使所述配置构建文件作为模块被所述工具构建文件引用。
27.可选地,所述分别在各个aar文件对应的工具构建文件中引用所述模块包括:
28.分别在各个aar文件对应的工具构建文件中添加依赖引用,以引用所述所有aar文件对应的模块。
29.可选地,所述在主工程对应的工具构建文件中添加ndk支持,运行所述android项目,包括:
30.根据当前业务场景和启动页面确定主工程;
31.在主工程对应的工具构建文件中添加ndk支持,并配置android设备的cpu类型;
32.配置完成后,运行所述android项目。
33.本发明的第二方面提供了一种unity打包android生成aar的系统,适用于unity含有vuforia平面识别带ar场景,包括:
34.android项目生成单元,用于在unity中设置vuforia库取消包含的arcore插件,利用unity生成android项目,得到ar的第一aar文件;
35.打包单元,用于打包unity的工程,生成发布版的aar包,得到unity的第二aar文件;
36.创建单元,用于将所述第一aar文件和第二aar文件放入所述android项目中,并分别创建各个aar文件对应的工具构建文件,其中,所述各个aar文件为第一aar文件或第二aar文件中的文件;
37.模块生成单元,用于根据预先创建的所有aar文件对应的配置构建文件,生成所有aar文件对应的模块,其中,所述所有aar文件包含第一aar文件和第二aar文件;
38.模块引用单元,用于分别在各个aar文件对应的工具构建文件中引用所述模块;
39.运行单元,用于在主工程对应的工具构建文件中添加ndk支持,运行所述android项目。
40.本发明的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行第一方面任意一项提供的unity打包android生成aar的方法。
41.本发明的第四方面提供了一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项提供的unity打包android生成aar的方法。
42.在本发明实施例提供的unity打包android生成aar的方法中,unity含有vuforia平面识别带ar场景,通过ar的第一aar文件和unity的第二aar文件,将ar内置到unity里面,并将打包生成的aar包集成到unity里面,运行android项目后,既能支持unity,又能支持ar功能,实现了ar显示,解决了相关技术中unity含有vuforia平面识别带ar功能时无法正常显示ar的问题。
附图说明
43.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本发明实施例提供的unity打包android生成aar的方法流程示意图;
45.图2为本发明实施例提供的在unity中设置vuforia库取消勾选arcore选项示意图;
46.图3为本发明实施例提供的利用unity生成android项目示意图;
47.图4为本发明实施例提供的在android项目下创建文件夹示意图;
48.图5为本发明实施例提供的工具构建文件找到对应的处于相同层级的aar文件示意图;
49.图6为本发明实施例提供的unity打包android生成aar的系统框图;
50.图7为本发明实施例提供的电子设备框图。
具体实施方式
51.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
52.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清
楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
53.在本发明中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本发明及其实施例,并非用于限定所指示的系统、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
54.并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本发明中的具体含义。
55.此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个系统、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
56.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
57.unity作为一款游戏引擎和开发工具,是实时3d互动内容创作和运营平台,可以通过unity单工程打包aar(android archive),其中,aar包是一个android库项目的二进制归档文件,包含class、jar、res等文件。
58.当通过unity显示ar(augmented reality,增强现实)场景时,需要通过ar平台vuforia平面识别带ar功能,其中,ar平台vuforia是高通推出的针对移动设备扩增实境应用的软件开发工具包。
59.然而,相关技术中常用的只有关于unity单工程打包android生成aar的方案,当需要unity含有vuforia平面识别带ar功能时,手动添加的vuforia无法识别ar场景,导致运行android项目后无法正常显示ar。
60.为了解决上述问题,本发明实施例提供了一种unity打包android生成aar的方法,适用于unity含有vuforia平面识别带ar场景,如图1所示,该方法包括如下的步骤s101至步骤s106:
61.步骤s101:在unity中设置vuforia库取消包含的arcore插件,利用unity生成android项目,得到ar的第一aar文件;其中,vuforia库是一个ar的平台,是由高通推出的针对移动设备扩增实境应用的软件开发工具包,将ar内置到unity中,以备后续显示出unity带平面识别的ar场景。
62.其中,所述第一aar文件包括:vuforia库文件、arcore文件、unityarcore文件、权限文件;arcore文件和unityarcore文件用于提供ar应用环境,arcore是谷歌推出的搭建增强现实应用程序的软件平台;
63.具体的,所述步骤s101中的在unity中设置vuforia库取消包含的arcore插件包括:
64.在unity中设置vuforia库取消勾选arcore选项,以避免所述vuforia库与第一aar文件中的arcore文件冲突。
65.在unity中生成android项目之前,首先在unity工具中设置vuforia库不包含arcore选项,如图2所示,取消勾选arcore选项,这样在引入arcore的aar文件时,可以避免
vuforia库的arcore插件与第一aar文件中的arcore文件冲突;然后,用unity生成android项目,得到第一aar文件,如图3所示,第一aar文件中,vuforia库文件可以是vuforiaengine.aar文件,用于提供vuforia库或ar平台,arcore文件可以是arcore_client.aar文件,用于提供ar应用环境,unityarcore文件可以是unityarcore.aar文件,用于提供ar应用环境,权限文件可以是unityandroidpermissions.aar文件,用于配置ar场景、视频或摄像头的权限。
66.步骤s102:打包unity的工程,生成发布版的aar包,得到unity的第二aar文件;利用所述android项目调用所述aar包,将所述aar包集成到unity内。
67.具体的,所述步骤s102中的打包unity的工程,生成发布版的aar包,得到unity的第二aar文件,包括:
68.在unity的工程中进行打包,生成调试版的aar包;
69.在所述调试版的aar包调试通过后,得到发行版的aar包;
70.将所述发行版的aar包作为unity的第二aar文件,其中,所述第二aar文件包括unity场景调用文件。
71.按照打包aar方法,右侧栏目点击gradle,在unity的library(工程)中找到tasks-》build-》assemble,然后点击assemble(打包),代表的是生成debug版(调试版)的aar包,调试通过后,生成release版(发行版)的aar包,作为第二aar文件,第二aar文件中的unity场景调用文件可以是airlooksuperapp.aar文件,用于调用unity场景。
72.步骤s103:将所述第一aar文件和第二aar文件放入所述android项目中,并分别创建各个aar文件对应的工具构建文件,其中,所述各个aar文件为第一aar文件或第二aar文件中的文件。
73.具体的,所述步骤s103中的将所述第一aar文件和第二aar文件放入所述android项目中,并分别创建各个aar文件对应的工具构建文件,包括:
74.在所述android项目的根目录下创建一级文件夹;
75.在所述一级文件夹中创建多个二级文件夹,并在各个二级文件夹中分别放入各自对应的aar文件;
76.在各个二级文件夹中,分别创建各个aar文件对应的工具构建文件,所述工具构建文件与处于相同层级的aar文件一一对应。
77.在android项目下创建文件夹,如图4所示,在android项目的根目录下创建一级文件夹aar_modules,aar_modules下的二级目录再建5个二级文件夹,分别为aar_unity文件夹、aar_vuforiaengine文件夹、arcode_client文件夹、unity_ar_code文件夹、unityandroidpermissions文件夹,并且,依次在aar_unity文件夹中放入airlooksuperapp.aar文件,在aar_vuforiaengine文件夹中放入vuforiaengine.aar文件,在arcode_client文件夹中放入arcore_client.aar文件,在unity_ar_code文件夹中放入unityarcore.aar文件,在unityandroidpermissions文件夹中放入unityandroidpermissions.aar文件。
78.在上述5个二级文件夹中,分别创建各个aar文件对应的工具构建文件(build.gradle文件),所述工具构建文件与处于相同层级的aar文件一一对应,如图5所示,以aar_aunity文件夹里面的build.gradle文件为例,build.gradle文件中的代码如下所
示:
79.configurations.maybecreate("default")
80.artifacts.add("default",file('airlooksuperapp.aar'))
81.build.gradle文件的主要作用是找到aar_aunity文件夹里面和build.gradle文件处于同层级的aar文件,即airlooksuperapp.aar文件,其他4个二级文件夹中的build.gradle原理和作用也是一样的。
82.步骤s104:根据预先创建的所有aar文件对应的配置构建文件,生成所有aar文件对应的模块,其中,所述所有aar文件包含第一aar文件和第二aar文件。
83.具体的,所述步骤s104中的根据预先创建的所有aar文件对应的配置构建文件,生成所有aar文件对应的模块,包括:
84.预先在所述android项目的根目录下创建所有aar文件对应的配置构建文件;
85.将所述配置构建文件进行模块化,以使所述配置构建文件作为模块被所述工具构建文件引用。
86.预先在android项目的根目录下创建所有aar文件对应的配置构建文件(setting.gradle文件),并且在setting.gradle文件中添加如下代码,以使该setting.gradle文件模块化:
87.include':aar_modules:aar_aunity'
88.include':aar_modules:aar_vuforiaengine'
89.include':aar_modules:arcode_client'
90.include':aar_modules:unity_ar_code'
91.include':aar_modules:unityandroidpermissions'
92.添加上述代码后,该setting.gradle文件既能将当作模块(module),又能被其他module引用该module。
93.步骤s105:分别在各个aar文件对应的工具构建文件中引用所述模块。
94.具体的,所述步骤s105包括:
95.分别在各个aar文件对应的工具构建文件中添加依赖引用,以引用所述所有aar文件对应的模块。
96.在5个二级文件夹各自对应的工具构建文件(build.gradle文件)中分别添加依赖引用(implementation),以找到上述的5个aar,具体代码如下:
97.implementation project(path:':aar_modules:aar_aunity')
98.implementation project(path:':aar_modules:aar_vuforiaengine')
99.implementation project(path:':aar_modules:arcode_client')
100.implementation project(path:':aar_modules:unity_ar_code')
101.implementation project(path:':aar_modules:unityandroidpermissions')
102.添加完成后,各个aar文件可以引用各自对应的模块。
103.步骤s106:在主工程对应的工具构建文件中添加ndk支持,运行所述android项目。
104.具体的,所述步骤s106包括:
105.根据当前业务场景和启动页面确定主工程;
106.在主工程对应的工具构建文件中添加ndk支持,并配置android设备的cpu类型;
107.配置完成后,运行所述android项目。
108.以启动页面显示的工程为主工程,在主工程对应的build.gradle文件中添加ndk支持,具体代码如下:
109.ndk{abifilters'armeabi-v7a'}
110.其中,配置android设备的cpu类型为armeabiv-v7a;
111.上述配置完之后,运行android项目,既能支持unity,又能支持ar功能。
112.从以上的描述中,可以看出,本发明实现了如下技术效果:
113.本发明unity含有vuforia平面识别带ar场景,通过ar的第一aar文件和unity的第二aar文件,将ar内置到unity里面,并将打包生成的aar包集成到unity里面,运行android项目后,既能支持unity,又能支持ar功能,实现了ar显示,解决了相关技术中unity含有vuforia平面识别带ar功能时无法正常显示ar的问题。
114.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
115.本发明实施例还提供了一种用于实施上述unity打包android生成aar的方法的unity打包android生成aar的系统,适用于unity含有vuforia平面识别带ar场景,如图6所示,该系统包括:
116.android项目生成单元61,用于在unity中设置vuforia库取消包含的arcore插件,利用unity生成android项目,得到ar的第一aar文件;
117.打包单元62,用于打包unity的工程,生成发布版的aar包,得到unity的第二aar文件;
118.创建单元63,用于将所述第一aar文件和第二aar文件放入所述android项目中,并分别创建各个aar文件对应的工具构建文件,其中,所述各个aar文件为第一aar文件或第二aar文件中的文件;
119.模块生成单元64,用于根据预先创建的所有aar文件对应的配置构建文件,生成所有aar文件对应的模块,其中,所述所有aar文件包含第一aar文件和第二aar文件;
120.模块引用单元65,用于分别在各个aar文件对应的工具构建文件中引用所述模块;
121.运行单元66,用于在主工程对应的工具构建文件中添加ndk支持,运行所述android项目。
122.本发明实施例还提供了一种电子设备,如图7所示,该电子设备包括一个或多个处理器71以及存储器72,图7中以一个处理器71为例。
123.该控制器还可以包括:输入装置73和输出装置74。
124.处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图7中以通过总线连接为例。
125.处理器71可以为中央处理器(central processing unit,简称为cpu),处理器71还可以为其他通用处理器、数字信号处理器(digital signal processor,简称为dsp)、专用集成电路(application specific integrated circuit,简称为asic)、现场可编程门阵列(field-programmable gate array,简称为fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合,通用处理器可以是微处
理器或者任何常规的处理器。
126.存储器72作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的控制方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的unity打包android生成aar的方法。
127.存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
128.输入装置73可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。
129.一个或者多个模块存储在存储器72中,当被一个或者多个处理器71执行时,执行如图1所示的方法。
130.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成的,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,简称为rom)、随机存储记忆体(random access memory,简称为ram)、快闪存储器(flash memory,简称为fm)、硬盘(hard disk drive,简称为hdd)或固态硬盘(solid-state drive,简称为ssd)等;存储介质还可以包括上述种类的存储器的组合。
131.虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1