默认即可
切换至 Project 视图下
(不切换也可以,但结构会复杂些)
登录后复制
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
修改 bulild.gradle
登录后复制
afterEvaluate {
generateReleaseBuildConfig.enabled = false
generateDebugBuildConfig.enabled = false
}
切换到 Project 目录下,在文件夹中打开该文件
将上面的三个文件夹导入到 unity 的 Assets/Plugins/Android 下
登录后复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UAExTest : MonoBehaviour
{
public Button btn;
public Text text1;
public Text text2;
private AndroidJavaObject jo = null;
// Start is called before the first frame update
void Start()
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
btn.onClick.AddListener(()=>{
int res = jo.Call<int>("Add", 1, 2);
text1.text = res.ToString();
});
}
public void UnityMethodA(string a)
{
text2.text = a;
}
}
注意:
更改下 PlayerSettings 中的 Package Name
需要与 AndroidManifest.xml 中的包名保持一致
登录后复制
// 1. 获取 Android 包下(类似于C#的命名空间)的指定类,方法一
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
// 2. 获取 Android 包下(类似于C#的命名空间)的指定类,方法二
AndroidJavaClass mainActivityClass = new AndroidJavaClass("com.xan.intentreceiver.MainActivity"
// 下面函数还可传其它参数,具体看API
1、Call<返回参数>("非静态公共函数名") 调用非静态公共函数
ReturnType Call<ReturnType>(string methodName, params object[] args);
2、CallStatic<返回参数>("静态公共函数名") 调用静公共态函数
3、Get<字段类型>("非静态公共字段名称") 获取非静态公共字段
4、GetStatic<字段类型>("静态公共字段名称") 获取静态公共字段
5、Set<字段类型>("非静态公共字段名称") 设置非静态公共字段
6、SetStatic<字段类型>("静态公共字段名称") 设置静态公共字段
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删