Version: 5.5

AndroidJavaProxy

class in UnityEngine

Switch to Manual

Description

Этот класс может быть использован для реализации какого-либо java интерфейса. Любой вызов метода виртуальной машины java на сопоставление интерфейса и прокси - объекта будет автоматически переведен в C# реализацию.

// Opens an android date picker dialog and grabs the result using a callback.
using UnityEngine;
using System;

class ExampleClass : MonoBehaviour { private static DateTime selectedDate = DateTime.Now;

class DateCallback : AndroidJavaProxy { public DateCallback() : base("android.app.DatePickerDialog$OnDateSetListener") {} void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth) { selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth); } }

void OnGUI() { if (GUI.Button(new Rect(15, 15, 450, 75), string.Format("{0:yyyy-MM-dd}", selectedDate))) { AndroidJavaClass activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"); activity.Call("runOnUiThread", new AndroidJavaRunnable(() => { new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), selectedDate.Year, selectedDate.Month - 1, selectedDate.Day).Call("show"); })); } } }

Variables

javaInterfaceИнтерфейс Java реализован с помощью прокси.

Constructors

AndroidJavaProxy

Public Functions

InvokeВызывается виртуальной машиной java всякий раз, когда метод вызывается на прокси - интерфейсе java. Вы можете переписать это для того, чтобы, запустить специальный код при вызове метода, или же вы можете оставить его как есть, и оставить поведение по умолчанию, которое должно искать методы C# соответствующие подписи метода java.