言語: 日本語
  • C#
  • JS
  • Boo

スクリプト言語

お好みのスクリプト言語を選択すると、サンプルコードがその言語で表示されます。

AndroidJavaProxy

Namespace: UnityEngine

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

Description

このクラスを使用して任意の Java インタフェースの実装できます。プロキシオブジェクト上のインタフェースに一致する任意の Java VM メソッド実行は C# 実装に自動的に渡されます。

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

// Dummy class to hold date - makes it easier to modify it in the callback 
class SelectedDate {
	static var date : Date = System.DateTime.Now;
}

// The callback class
class DateCallback extends AndroidJavaProxy {
	function DateCallback() {
		super("android.app.DatePickerDialog$OnDateSetListener");
	}
	function onDateSet(view: AndroidJavaObject, year: int, monthOfYear: int, dayOfMonth: int){
		SelectedDate.date = new Date(year, monthOfYear + 1, dayOfMonth);
	}
}

function OnGUI () {
	if (GUI.Button (Rect (10,10,450,100), String.Format("{0:yyyy-MM-dd}", SelectedDate.date))) {
		var activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic.<AndroidJavaObject>("currentActivity");
		activity.Call("runOnUiThread", new AndroidJavaRunnable(function(){
			new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), 
				SelectedDate.date.Year, SelectedDate.date.Month - 1, SelectedDate.date.Day).Call("show");
		}));
	}
}
using UnityEngine;
using System.Collections;

public class SelectedDate : MonoBehaviour {
    public static Date date = System.DateTime.Now;
}
public class DateCallback : MonoBehaviour {
    new ("android.app.DatePickerDialog$OnDateSetListener");
    void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth) {
        SelectedDate.date = new Date(year, monthOfYear + 1, dayOfMonth);
    }
}
public class ExampleClass : MonoBehaviour {
    void OnGUI() {
        if (GUI.Button(new Rect(10, 10, 450, 100), String.Format("{0:yyyy-MM-dd}", SelectedDate.date))) {
            AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
            activity.Call("runOnUiThread", AndroidJavaRunnable(            new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), SelectedDate.date.Year, SelectedDate.date.Month - 1, SelectedDate.date.Day).Call("show");
));
        }
    }
}
import UnityEngine
import System.Collections

public class SelectedDate:

	public static date as Date = System.DateTime.Now

public class DateCallback(AndroidJavaProxy):

	public def constructor():
		super('android.app.DatePickerDialog$OnDateSetListener')

	def onDateSet(view as AndroidJavaObject, year as int, monthOfYear as int, dayOfMonth as int) as void:
		SelectedDate.date = Date(year, (monthOfYear + 1), dayOfMonth)

public class ExampleClass(MonoBehaviour):

	def OnGUI() as void:
		if GUI.Button(Rect(10, 10, 450, 100), String.Format('{0:yyyy-MM-dd}', SelectedDate.date)):
			activity as AndroidJavaObject = AndroidJavaClass('com.unity3d.player.UnityPlayer').GetStatic[of AndroidJavaObject]('currentActivity')
			activity.Call('runOnUiThread', AndroidJavaRunnable({ AndroidJavaObject('android.app.DatePickerDialog', activity, DateCallback(), SelectedDate.date.Year, (SelectedDate.date.Month - 1), SelectedDate.date.Day).Call('show') }))

Variables

javaInterface プロキシにより実装された Java インタフェース。

Constructors

AndroidJavaProxy

Functions

Invoke Javaプロキシインタフェースでメソッドが実行されるたびにJava VMにより呼び出されます。これをオーバーライドすることでメソッドの実行時に特別なコードを実行するか、実装をそのままとしてデフォルト動作である Java メソッドのシグニチャと一致する C# メソッドを探すことが出来ます。