安卓接入Unity导出的模块

Posted open happy鸭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓接入Unity导出的模块相关的知识,希望对你有一定的参考价值。

安卓接入Unity导出的模块

我的app有一个需求是需要接入unity导出的程序,实现显示模型并且交互的功能。

首先新建一个activity,我这里命名为TestUnityActivity

然后需要将Unity导出的文件包添加到对应的android工程里面,需要导入的文件有libs文件夹下面的jar包,main文件夹下面是assets和jniLibs

然后在任意想要跳转的页面添加按钮和监听器,可以跳转到TestUnityActivity中

private void clikeAR() 
        button=findViewById(R.id.vidio_like);
        button.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View view) 
                Intent intent=new Intent(radio_player.this,TestUnityActivity.class);
                startActivity(intent);

            
        );

在TestUnityActivity中,可以通过变化参数来显示不同地模型呈现,前提是需要在unity中写好参数变换的脚本(此处设计unity中的脚本逻辑,不做解释)

UnityPlayer.UnitySendMessage("Main Camera","shows","bag");//第一个为固定参数,第二个是unity的脚本中的函数名,第三个是不同模型对应的参数

然后还需要添加返回的页面(可以不加):

@Override
    public boolean onKeyDown(int i, KeyEvent keyEvent) 
        // 添加返回键返回 MainActivity
        if(i == KeyEvent.KEYCODE_BACK)
            Intent intent = new Intent(this, radio_player.class);//返回到上一个页面
            startActivity(intent);
            finish();
        
        return super.onKeyDown(i, keyEvent);
    

在一些手机机型中该unity模块会被识别为游戏,因此返回键可能会被隐藏

以上配置完成就运行后就肯看到unity模块中的内容,但是有且情况会报错,显示UnityPlayerActivity.java不存在

解决方法:

进入unity导出的包,到这个目录下面

可以找到一个名字为UnityPlayerActivity的java文件,将这个java文件复制到一下目录下面就可以了

效果

Unity使用gradle接入sdk和打包

tips:本文基于Unity5.6.3f1和Android Studio2.3.3


白话几句

这几天小编需要游戏中接入微信的AndroidSDK,首先当前接入AndroidSDK主要有两种方式:

  • 在安卓工程接入SDK导出jar/aar包到Unity中,在Unity中进行打包

  • Unity导出安卓工程,然后接入SDK,使用安卓工程打包

之前小编有第一中方式的经验(eclipse导出jar到Unity使用),然而在微信官方文档上看到如下的内容:

然后往下看到环境搭建部分:
Unity使用gradle接入sdk和打包
Android Studio环境配置只用一句话,而Eclipse需要1,2,3,看到这里小编心动了(由于小编不是安卓开发者,果断选择相对简单的)。


Unity导出Gradle工程并在Android Studio中打开

在Unity Build Setting选项中进行如下选择
Unity使用gradle接入sdk和打包
详细请查看Unity官方文档Gradle for Android

点击Export并且选择一个目录,出现如下错误:
Unity使用gradle接入sdk和打包
是因为对应用进行签名之前才能导出,小编使用Unity自带的工具生成签名文件(当然也可以使用Android Studio生成)。步骤如下:

  • Player Setting -> Player Setting面板最下面点击Publishing Setting:

Unity使用gradle接入sdk和打包

  • 选中Create a new keystore…,

  • 点击Brower Keystore,并且选择一个文件夹;

  • 输入password,并且确认密码;

  • 点击Alias,选中Create a new key

Unity使用gradle接入sdk和打包

  • 设置画红线的信息(其他为选填),点击Create Key;

  • 再次点击Alias,选中上一步创建key(这里是key0),并且在Password填入刚才设置的密码;

进行签名之后,再次进行工程的导出即可正常导出。打开Android Studio选择Import project,选中之前导出的Gradle工程,出现如下界面:

Unity使用gradle接入sdk和打包

  • 对于那些强迫症的,可以选择OK,直接使用最新的

  • 一般项目的话应该都是使用 local 的,所以这里应该 Cancel,在之后的弹窗中设置本地的Gradle Home即可。

项目在Android Studio中打开之后可能会出现如下错误:

这可能是由于网络原因导致的,在Android Studio中打开build.gradle文件,将”com.android.tools.build:gradle:2.1.3″改成一个可用的版本即可(可以新建一个Android Studio工程查看),然后删除第一行文字(否则文件将被下次导出覆盖),最后将生成的AndroidManifest.xml拷贝到Unity Plugins/Android下面即可(如需修改AndroidManifest.xml,请直接修改Unity中版本,然后重新导出工程)。


build.gradle

这个文件在Gradle工程编译打包的配置文件,详细说明请看android gradle配置详解 && Gradle for Android第一篇(从Gradle和AS开始)。


接入SDK

使用Gradle打包

可以选择在Android Studio中进行打包,在Android Studio右上角点击Gradle会弹出如下界面(所有可以执行的小任务,双击即可构建选中的任务)。

当然如果嫌弃Android Studio速度慢,也可以配置本地Gradle环境变量,使用Gradle命令行进行自动打包:
– 导航到工程的根目录下;
– 点击shift键同时按下鼠标右键,选择在此处打开命令窗口;
– 输入对应的gradle命令即可(Android Studio Gradle界面中所有出现任务)。


总结

  • Unity中进行开发,并且只提供与SDK对接的接口

  • Android Studio接入SDK并打包

上面的方式是项目获取了极大的灵活性,而且使用到自动构建神器(Gradle),为将来接入多个SDK多发布平台,修改build.gradle文件即可,最理想的情况下,甚至无需改动Unity工程。


以上是关于安卓接入Unity导出的模块的主要内容,如果未能解决你的问题,请参考以下文章

Unity使用gradle接入sdk和打包

unity打包-1.打包安卓apk

unity打包-1.打包安卓apk

Unity-Android(安卓)支持androidx(兼容andoridx)

unity接入安卓SDK,与安卓相互通信

Unity 设置安卓和ios平台的闪屏页(适合新手)