如何使用AndroidJavaObject.Call将参数传递给Java
本文关键字:参数传递 Java Call 何使用 AndroidJavaObject | 更新日期: 2023-09-27 18:27:19
所以我已经将我的项目与eclipse集成,并通过C#调用对我的Java类进行调用:
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("Trigger");
现在,如果我不尝试在Trigger方法调用的同时传递任何参数,它会完美地调用该方法。但是,如果我尝试按如下方式传递变量:
jo.Call("Trigger", "my string");
unity引擎认为mystring参数指的是被调用方法的签名类型。如何将变量传递给我的Java方法?
除此之外,我如何将变量从java返回到C#?它会像一样简单吗
String myString = jo.Call("Trigger");
感谢您的提前帮助!
试着这样做。它对我有效:
using(AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
using(AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity"))
{
jo.Call("Trigger", "my string");
}
}
然后在Eclipse中执行:
void Trigger(String message)
{
if(message=="my string")...
}
将变量从java发送到C#:在eclipse中:
UnityPlayer.UnitySendMessage("Android", "ReceiveVar", "some string");
其中"Android"
是包含"ReceiveVar(string str)"
函数的脚本,"some string"
是您的变量(这是Unity部分)。