首先两边建立工程,包名 统一为com.chengdu.sichuan
1、AS建立工程
选择新建安卓工程

选择空活动窗口

命名包名
注意语言以及最低sdk版本,别忘了工程的位置

Finish 等待 CONFIGURE SUCCESSFUL 配置完成
在unity的安装目录

ctrl +c 拷贝这个class.jar

在Project视图下选择libs文件夹 Ctrl +v粘贴

确认

然后右键添加到Library 确认。

在MainActivity中 注释不需要的内容,以及使用unity的窗口

在这里 新建一个方法,供unity来调用显示Toast
public void ShowToast(final String msg){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),msg,Toast.LENGTH_SHORT).show();
}
});
}
爆红的话 ,使用Alt+Enter 来import Class
修改AndroidManifest.xml

箭头指的都是一些unity用不到的资源 带@的都可以删除,然后在activity下添加
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
最终如下

相应的,需要删除这些用不到的资源,按Delete删除

valus目录下内容也都是用不到的,删掉内容


修改build.gradle文件

把 apply plugin: 'com.android.application' 修改为 apply plugin: 'com.android.library',
注释掉用不到的内容,并把之前导入的class.jar修改为,只编译,这样在导出的aar包中就不需要删除lib了

sync一下
点击导出

在工程的导出目录找到aar文件

找到AndroidManifest.xml文件

待用
新建unity 安卓工程,包名保持一致

按图中样式创建目录

将aar与xml文件都放入Android目录
推荐使用bandzip 打开aar

删除这个BuildConfig.class,unity已经有这个,不删除 导出会提示duplicate_class,重复
编写脚本,挂载到任意物体
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameController : MonoBehaviour
{
void Start()
{
CallAndroid.CallAn();
}
}
public class CallAndroid
{
public static void CallAn()
{
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
currentActivity.Call("ShowToast", "四川成都欢迎你");
}
}
基本的调用就是这样,网上还有很多调用静态方法,带返回值等等案例,这里不再赘述,只是把最新的导出aar方法分享出来

安卓10 手机上测试正常
网友评论