当前位置:   article > 正文

Unity Android平台 Java代码调用_java 调用unity

java 调用unity


获取当前Context

AndroidJavaObject context = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
  • 1

调用静态方法

示例调用com.package包名下name类的getInstance方法获取实例

AndroidJavaObject jo = new AndroidJavaObject("com.package.name");
AndroidJavaObject instance= jo.CallStatic<AndroidJavaObject>("getInstance");
  • 1
  • 2

调用非静态方法

示例调用com.package包名下name类的getInstance方法获取实例,通过实例调用非静态方法

AndroidJavaObject jo = new AndroidJavaObject("com.package.name");
AndroidJavaObject instance = jo.CallStatic<AndroidJavaObject>("getInstance");
instance .Call("SetWidth", MediapipeConfig);
  • 1
  • 2
  • 3

创建java对象并赋值

示例创建com.package包名下name类对象,并给对象内静态变量和非静态变量赋值,方法参数传递时使用较多

AndroidJavaObject jo = new AndroidJavaObject("com.package.name");
jo.set<bool>("isBool",false);
jo.set<int>("count",false);
jo..SetStatic<float>("width",1.0f);
  • 1
  • 2
  • 3
  • 4

从对象中取出嵌套参数

下边是Java中自定义的一个常见返回类型

public class ImageData
{
	public int width;
	public int height;
	public byte[] bitmapData;
}

public class ReturnData
{
	public int count;
	public ImageData imageData;
}

public static void ReturnData GetReturnData
{
	...
	return returnData;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

比如com.package包名下name类中,通过Call方法获取的返回值是C#中不存在的类,此时我们可能无法解析,但实际使用中我们并不关心这类具体是什么结构,想要的只是类中某个变量的值,这个时候可以使用Get方法取出其中的值。

AndroidJavaObject jo = new AndroidJavaObject("com.package.name");
AndroidJavaObject instance = jo.CallStatic<AndroidJavaObject>("GetReturnData");

//获取count
int count = instance.Get<int>("count");

//将类型转换为AndroidJavaObject,在从中取出想要的参数
AndroidJavaObject imageData = instance.Get<AndroidJavaObject>("imageData");
byte[] bitmapData = imageData.Get<byte[]>("bitmapData");
int width = imageData.Get<int>("width");
int height = imageData.Get<int>("height");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/597620
推荐阅读
相关标签
  

闽ICP备14008679号