偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.
全部博文(1750)
分类: Android平台
2016-04-15 09:57:10
class in UnityEngine
This class can be used to implement any java interface. Any java vm method invocation matching the interface on the proxy object will automatically be passed to the c# implementation.
// 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))) { var activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic("currentActivity"); activity.Call("runOnUiThread", new AndroidJavaRunnable(() => { new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), selectedDate.Year, selectedDate.Month-1, selectedDate.Day).Call("show"); })); } } }
javaInterface | Java interface implemented by the proxy. |
AndroidJavaProxy |
Invoke | Called by the java vm whenever a method is invoked on the java proxy interface. You can override this to run special code on method invokation, or you can leave the implementation as is, and leave the default behavior which is to look for c# methods matching the signature of the java method. |
使用示例:
首先获取Java Object对象: