unity 调Android 类中方法 ,并返回值
时间: 2024-02-07 15:02:49 浏览: 108
在 Unity 中调用 Android 类中的方法,并获取返回值,可以使用 AndroidJavaObject 类的 Call() 方法,例如:
```csharp
// 获取当前 Activity 对象
AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
// 获取 Test 类的实例
AndroidJavaObject testObj = new AndroidJavaObject("com.example.Test");
// 调用 Test 类的 getTestString() 方法,并获取返回值
string testString = testObj.Call<string>("getTestString", activity);
```
在上面的代码中,我们首先获取当前 Activity 对象,然后创建 Test 类的实例,最后调用 Test 类的 getTestString() 方法,并获取返回值。需要注意的是,在调用方法时,我们需要指定方法的返回值类型,这里使用了 string 类型。如果方法没有返回值,可以使用 Call() 方法的无参版本,例如:
```csharp
testObj.Call("testMethod");
```
以上代码只是调用了 Test 类的 testMethod() 方法,没有获取返回值。
同时,需要注意的是,调用 Android 类的方法需要在 Android 线程中进行,可以使用 Unity 的 AndroidJavaRunnable 类和 AndroidJavaProxy 类来实现,具体可以参考 Unity 官方文档。
阅读全文