安卓接入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文件复制到一下目录下面就可以了