一种unity和安卓频繁通讯技术的制作方法

文档序号:18212966发布日期:2019-07-19 22:26阅读:338来源:国知局

本发明涉及通讯技术领域,具体为一种unity和安卓频繁通讯技术。



背景技术:

现有的安卓和unity通讯时通过sendmessage的方式交互,这种方法只能传入字符串做参数,不灵活,而且字符串解析会有大量的gc产生并且耗时长,如果频繁的使用这种方式,还可能会导致安卓底层的jni引发的崩溃产生。鉴于此,我们提出一种unity和安卓频繁通讯技术。



技术实现要素:

本发明的目的在于提供一种unity和安卓频繁通讯技术,以解决上述背景技术中提出的问题。

为实现上述目的,一方面本发明提供一种unity和安卓频繁通讯技术,包括以下操作步骤:

步骤一、创建安卓工程,在支持安卓的开发环境中,创建一模块类型的安卓工程;

步骤二、创建unity工程,在支持unity的开发环境中,创建一模块类型的unity工程;

步骤三、将unity工程中的资源文件全部复制到安卓工程中;

步骤四、将基础安卓工程中的库文件和类文件全部复制到原生安卓工程中;

步骤五、在原生安卓工程的启动文件中添加对unityappcontroller的引用;

步骤六、编译安卓工程,以输出继承unity工程全部特性的安卓文件;

步骤七、在支持unity的开发环境中,创建定义接口;

步骤八、修改安卓工程中启动activity的基类为androidjavaobject;

步骤九、通过定义接口和androidjavaobject直接交互,直接通过反射获取字段值。

作为本发明的优选,将unity工程中的资源文件全部复制到安卓工程中之前,根据界面设计需求,在支持unity的开发环境中,创建unity工程,编译unity工程,以输出unity文件。

作为本发明的优选,将unity工程中的资源文件全部复制到安卓工程中,包括以下两个步骤:

步骤一、在安卓工程的源代码的主函数目录下,新建一资源文件夹;

步骤二、将unity工程中的资源文件全部复制到资源文件夹中。

作为本发明的优选,将基础安卓工程中的库文件和类文件全部复制到原生安卓工程中的具体操作方法为:在原生安卓工程的根目录下,新建库文件夹和类文件夹,并将基础安卓工程中的库文件和类文件分别复制到库文件夹和类文件夹中;或者直接将基础安卓工程中的库文件夹和类文件夹分别复制到原生安卓工程的根目录下。

作为本发明的优选,修改安卓工程中启动activity的基类为unityplayeractivity,包括以下两个步骤:

步骤一、打开安卓工程的编辑界面;

步骤二、通过编辑界面,修改启动activity的基类为unityplayeractivity。

另一方面,本发明还提供一种对unity层进行的命令队列封装方法,其特征在于,包括以下操作步骤:

步骤一、安卓创建单元,用于在支持安卓的开发环境;

步骤二、复制单元,用于将unity工程中的资源文件全部复制到安卓工程中;

步骤三、修改单元,用于修改安卓工程中启动activity的基类为unityplayeractivity;

步骤四、安卓编译单元,用于编译安卓工程,以输出继承unity工程全部特性的安卓文件;

步骤五、接口定义,在untiy层把每一个接口定义成命令,并将untiy层封装到命令队列里;

步骤六、定义命令数量,自定义控制每一帧处理的命令数量,避免jni层发生崩溃。

与现有技术相比,本发明的有益效果是:

本发明通过定义接口和androidjavaobject直接交互,可以直接通过反射获取字段值,在untiy层把每一个接口定义成命令,封装到命令队列里,自定义控制每一帧处理的命令数量,避免jni层发生崩,且有效避免了gc产生,而且耗时少。

具体实施方式

下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

一方面,本发明提供一种unity和安卓频繁通讯技术,包括以下操作步骤:

步骤一、创建安卓工程,在支持安卓的开发环境中,创建一模块类型的安卓工程;

步骤二、创建unity工程,在支持unity的开发环境中,创建一模块类型的unity工程;

步骤三、将unity工程中的资源文件全部复制到安卓工程中;

步骤四、将基础安卓工程中的库文件和类文件全部复制到原生安卓工程中;

步骤五、在原生安卓工程的启动文件中添加对unityappcontroller的引用;

步骤六、编译安卓工程,以输出继承unity工程全部特性的安卓文件;

步骤七、在支持unity的开发环境中,创建定义接口;

步骤八、修改安卓工程中启动activity的基类为androidjavaobject;

步骤九、通过定义接口和androidjavaobject直接交互,直接通过反射获取字段值。

本实施例中,基于安卓开发环境提供的编译器或者外部独立的编译器,编程人员对安卓工程进行编译。编译器一般会提供编译设置项,以供编程人员进行编译设置,例如导出平台选择、编译方式选择等。

进一步可选的,可以采用mono2x编译器对上述安卓工程进行编译,以输出cli格式的unity文件。

本实施例中,根据应用场景的不同,支持安卓的开发环境也会有所不同,其中,可以自行搭建支持安卓的开发环境,自行搭建支持安卓的开发环境主要包括:安装java语言开发工具包(javadevelopmentkit,jdk);安装eclipse;安装adt等操作。eclipse是一个开放源代码的、基于java的可扩展开发平台;adt是eclipse平台下用来开发安卓应用程序的插件,或者,也可以采用现有的支持安卓的开发环境,例如,androidstudio。androidstudio是google开发的一款面向安卓开发者的ide,支持windows、mac、linux等操作系统,是基于流行的java语言集成开发环境intellij搭建而成。

值得说明的是,所创建的安卓工程实际上是一个工程框架,并未包含任何应用相关的内容或逻辑,是为了封装unity工程而创建。其中,应用相关的内容或逻辑均在unity工程中实现。可选地,在一应用场景中,由unity工程实现的应用相关的内容或逻辑主要为应用中与ui相关的内容或逻辑,例如包括界面的布局样式、交互方式以及输入输出方式等。

本实施例中,将unity工程中的资源文件全部复制到安卓工程中之前,根据界面设计需求,在支持unity的开发环境中,创建unity工程,编译unity工程,以输出unity文件。

值得说明的是,在将安卓工程中启动activity的基类修改为unityplayeractivity之后,安卓工程将会从unityplayeractivity开始,通过unityplayeractivity可以加载unity工程实现的一切功能,进而得到一个继承了unity工程所有特性的安卓工程。

本实施例中,将unity工程中的资源文件全部复制到安卓工程中,包括以下两个步骤:

步骤一、在安卓工程的源代码的主函数目录下,新建一资源文件夹;

步骤二、将unity工程中的资源文件全部复制到资源文件夹中。

本实施例中,将基础安卓工程中的库文件和类文件全部复制到原生安卓工程中的具体操作方法为:在原生安卓工程的根目录下,新建库文件夹和类文件夹,并将基础安卓工程中的库文件和类文件分别复制到库文件夹和类文件夹中;或者直接将基础安卓工程中的库文件夹和类文件夹分别复制到原生安卓工程的根目录下。

本实施例中,修改安卓工程中启动activity的基类为unityplayeractivity,包括以下两个步骤:

步骤一、打开安卓工程的编辑界面;

步骤二、通过编辑界面,修改启动activity的基类为unityplayeractivity。

值得说明的是,安卓工程可以采用但不限于java语言。

另一方面,本发明还提供一种对unity层进行的命令队列封装方法,包括以下操作步骤:

步骤一、安卓创建单元,用于在支持安卓的开发环境;

步骤二、复制单元,用于将unity工程中的资源文件全部复制到安卓工程中;

步骤三、修改单元,用于修改安卓工程中启动activity的基类为unityplayeractivity;

步骤四、安卓编译单元,用于编译安卓工程,以输出继承unity工程全部特性的安卓文件;

步骤五、接口定义,在untiy层把每一个接口定义成命令,并将untiy层封装到命令队列里;

步骤六、定义命令数量,自定义控制每一帧处理的命令数量,避免jni层发生崩溃。

进一步的,复制单元,用于将unity工程中的资源文件全部复制到安卓创建单元所创建的安卓工程中。

进一步的,修改单元,用于修改安卓创建单元所创建的安卓工程中启动activity的基类为unityplayeractivity。

进一步的,安卓编译单元,用于编译修改单元修改后的安卓工程,以输出继承unity工程全部特性的安卓文件。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1