赞
踩
默认即可
切换至 Project 视图下
切换到 Android 视图下(不切换也可以,但结构会复杂些)
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
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<字段类型>("静态公共字段名称") 设置静态公共字段
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。