Объявление
public delegate void AndroidJavaRunnable();Описание
AndroidJavaRunnable — это представление Unity объекта java.lang.Runnable.
Обратите внимание, что это делегат. Таким образом, новый объект java.lang.reflect.Proxy создается каждый раз, когда он передается в качестве аргумента в Java. Это означает, что многократная передача переменной типа AndroidJavaRunnable в Java приводит к созданию нового объекта Java каждый раз с разными значениями хэш-кода. Это также означает, что вызов equals()
для объекта Java, созданного как представление переменной AndroidJavaRunnable, всегда возвращает false, даже при сравнении с самим собой.
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
// Передать контекст выполнения потоку пользовательского интерфейса Java.
void Start()
{
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
activity.Call("runOnUiThread", new AndroidJavaRunnable(runOnUiThread));
}
void runOnUiThread()
{
Debug.Log("I'm running on the Java UI thread!");
}
}