Unity 打包 as工程

1.监听安卓返回键,关闭unity自身activity

void Update () {
if (Input.GetKeyUp(KeyCode.Escape))
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("onBackPressed");
}
}

2.导入vuforia,制作好demo

3.修改包名

unity3d与安卓交互:unity打包aar给安卓工程调用(含有Vuforia)_Android


4.导出as 工程

unity3d与安卓交互:unity打包aar给安卓工程调用(含有Vuforia)_vuforia_02

As工程打包出aar

1.增加监听返回键的处理

unity3d与安卓交互:unity打包aar给安卓工程调用(含有Vuforia)_Android_03


中加入代码

@Override
public void onBackPressed() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mUnityPlayer.quit();
}
});
super.onBackPressed();
}

2.AndroidManifest中去掉intent-filter 标签
防止apk出现两个icon
3.Gradle中修改

apply plugin: 'com.android.application'

改为

apply plugin: 'com.android.library'

删除
applicationId
Build > Make Project ,Android Studio 会将项目打包成 AAR 文件,并放入 build/outputs/aar 文件夹中

As工程引用aar

1.把VuforiaWrapper.aar 与打包出来的aar放在这

unity3d与安卓交互:unity打包aar给安卓工程调用(含有Vuforia)_unity3d_04


2.点击File->new ->New Module->import .JAR/.AAR Package

把刚放入的两个aar引入

3.AndroidManifest修改

告诉 merge 合并程序使用哪一个 Icon 和 Theme ,分别在 manifest 标签和 application 标签下添加代码:

xmlns:tools="http://schemas.android.com/tools"
tools:replace="android:icon,android:theme"

unity3d与安卓交互:unity打包aar给安卓工程调用(含有Vuforia)_aar_05


4.Gradle修改

修改sdk版本号一致,增加依赖aar(有几个加几个)

unity3d与安卓交互:unity打包aar给安卓工程调用(含有Vuforia)_vuforia_06


5.java代码修改

增加按钮响应,调起unity的activity

package com.example711.xx.test711_1;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.test710.luoyikun.UnityPlayerActivity;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Intent intent = new Intent(MainActivity.this, UnityPlayerActivity.class);
startActivity(intent);
}
});
}
}

6.结果

unity3d与安卓交互:unity打包aar给安卓工程调用(含有Vuforia)_Android_07


unity3d与安卓交互:unity打包aar给安卓工程调用(含有Vuforia)_互相调用_08

源工程下载地址
​​​https://pan.baidu.com/s/19JGvGD-beQPwsgX6rOx9XA​