Unity版本:2019.3.0
Android Studio版本:3.3.2
参考帖子:最新-手把手教Unity2017.3 Android Studio3.0.1 SDK接入教程含jdk和sdk环境配置
Androidstudio3.1和unity互相调用
Unity 与 Android studio 如何交互
首先新建一个Android Studio的工程 选择Empty Activity

设置包名项目位置和API最低等级

创建好的界面是这样的

切换到Project 然后 File-New-NewModule 新建一个Module


弹出的界面 选择Android Library 然后填写Module 的名称


创建好后,在项目中就可以看到你创建Moudle了 把Unity 的jar包放到libs下,然后右击它选择 Add As Library 添加引用


切换到Android 选择你刚刚新建的下 java - com.demo.unitylibrary 然后新建一个Activity

这里勾选Launcher Activity 会生成一个xml文件

删除这个用不到的文件

删除 setContentView(R.layout.activity_main); 继承 UnityPlayerActivity 修改后

新建两个方法 用于测试
注意: UnityPlayer.UnitySendMessage方法 的第一个参数是你Unity中挂载脚本预制体的名字

完毕后 选择项目然后Build - Make Module ‘ unitylibrary’

build后 切换到Project 在build-intermediates下 看到三个文件,这三个文件夹下装载这Unity需要的jar包和xml文件


将这些文件拷贝到unity 的Android文件夹下

Unity中调用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class AndroidPlugin : MonoBehaviour
{
public Text text01;
public Text text02;
private AndroidJavaObject androidJavaObject= null;
private void Awake()
{
AndroidJavaClass androidClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
androidJavaObject = androidClass.GetStatic<AndroidJavaObject>("currentActivity");
if (androidJavaObject != null)
{
androidJavaObject.Call("UnityTest01", "测试文本");
int temp = androidJavaObject.Call<int>("UnityTest02",1,2);
text02.text = temp.ToString();
}
}
public void Test(string str)
{
text01.text = str;
}
}
这样就完成了
不多说了,祝大家新年快乐

网友评论