步骤1:在Unity中编写C#脚本 // Unity C#脚本示例usingUnityEngine;publicclassUnityAndroidBridge:MonoBehaviour{publicvoidCallAndroidMethod(stringmethodName){// 调用Android方法AndroidJavaClassunityPlayer=newAndroidJavaClass("com.unity3d.player.UnityPlayer");AndroidJavaObjectcurrentActivity=unityPlayer.GetStatic<AndroidJavaO...
1. 准备 Unity 项目及 Android 环境配置 在开始之前,请确保你已安装好 Unity 和 Android Studio。创建一个新的 Unity 项目,选择 Android 平台作为目标平台。 2. 创建 Java 类用于 Android 与 Unity 的交互 在Android Studio 中,我们需要创建一个 Java 类,用于处理来自 Unity 的请求。 // MyUnityPlayerActivity...
1)Java代码中通过UnityPlayer调用MonoBehavior的方法; 方法执行在Unity主线程。 2)使用AndroidJavaProxy,调用Java方法时,传入Java监听接口映射的AndroidJavaProxy对象; 方法执行在Android调用方法所在线程。 3. 搭建通信方法 Unity与Android通信时,Unity作为UI展示端,Android插件作为数据服务端; 通信方式可设计为C/S服务架构...
Android平台 1、调用C/C++代码(jni层的so库) C++代码需要使用extern “C”来封装成.so库,因为Unity默认是使用C语言调用外部接口,会对C++代码进行命名矫正,使用extern “C”避免这个问题。C语言代码(.c文件)可以直接在Unity的C#代码中调用(调用方式同C++代码一样)。 将生成的api.so放到Unity的Assets/Plugins/Andro...
init方法需要Unity尽早调用。 testCallback方法会调用Unity场景中名为AndroidRecall的物体上挂载脚本中的AndroidCallback方法,参数是arg1,具体调用可以查一下,文档很多 由于最后一个SetVibrator()中调用了关于震动的方法,需要在AndroidManifest.xml中添加关于震动的权限,理论上在写的时候IDE会自动提示添加的 ...
我们一般建立了一个新的MyActivity继承UnityPlayerActivity,并在AndroidManifest中把MyActivity设置为启动的Activity,然后使用currentActivity这个jo来调用方法。 No4: 新版Unity生成的unity-class.jar中类的继承关系变简单了:UnityPlayerActivity->Activity,之前的UnityPlayerNativeActivity被废弃了 ...
Unity 项目中一些需要访问安卓操作系统的功能,比如获取电量,wifi 状态等,需要 Unity 启动安卓系统的BroadcastReceiver监听状态,并在状态更新后通知到 Unity 界面。这就需要一种 Unity 与 Android 互相调用的机制,直观地看就是 C# 与 Java 互相调用的方法。
1. 在Unity里调用Android代码: 1voidOnGUI(){2AndroidJavaClass jc =newAndroidJavaClass("com.some.package.name.XXX");3AndroidJavaObject activity = jc.GetStatic<AndroidJavaObject>("currentActivity");4string[] args =newstring[2];5args [0] ="a";6args [1] ="b";7activity.Call("MethodName", args...
1.Unity调用Android 1、普通类静态方法的调用,使用AndroidJavaClass //创建类的引用 AndroidJavaClass ajc = new AndroidJavaClass("需要调用的方法所在的类"); //使用创建的类进行调用 ajc.CallStatic("方法名", {参数数组}); //如果调用的方法包含返回值 ...