美文网首页
Unity调用Android参数为数组的方法

Unity调用Android参数为数组的方法

作者: SuperTang | 来源:发表于2018-07-11 09:07 被阅读0次

作者个人网站:http://www.harddone.com

Unity开发过程中,如果要调用Android端的java方法,恰巧该方法的参数是可变参数或者数组,使用unity的AndroidJavaObject提供的call方法直接传递c#数组,是需要对数组参数做一下处理。举例说明:

java方法如下:

public void addList(String... values){

}

unity c#调用时,需要把传入的参数数组转化成一个AndroidJavaObject,然后再调用AndroidJavaObject提供的call方法。

public void add(string[] values){

        AndroidHelper.getIapManagerAndroidObject ().Call (_javaMethodName, javaArrayFromCS(values));

}

private AndroidJavaObject javaArrayFromCS(string[] values){

AndroidJavaClass arrayClass  =newAndroidJavaClass("java.lang.reflect.Array");

AndroidJavaObject arrayObject = arrayClass.CallStatic("newInstance",newAndroidJavaClass("java.lang.String"), values.Count());

for(int i=0; i < values.Count(); ++i){

arrayClass.CallStatic("set", arrayObject, i,newAndroidJavaObject("java.lang.String", values[i]));

}

return arrayObject;

}

参考:https://stackoverflow.com/questions/42681410/androidjavaobject-call-array-passing-error-unity-for-android

相关文章

网友评论

      本文标题:Unity调用Android参数为数组的方法

      本文链接:https://www.haomeiwen.com/subject/edvcpftx.html