UnityでandroidのToastを使いたい

ユーザに対して簡単なメッセージを出したいときに、androidのToastは非常に便利です。
Unityで同じような機能を探したんですが、見つかりませんでした。
というわけで、UnityからToastを使う手順です。


① eclipseでToastを表示するクラスを作成する。
参考URL:https://blog.nraboy.com/2014/06/creating-an-android-java-plugin-for-unity3d/

package com.example.unitytoast;
import android.content.Context;
import android.widget.Toast;

public class ToastExample {

private Context context;
private static ToastExample instance;

public ToastExample() {
this.instance = this;
}

public static ToastExample instance() {
if(instance == null) {
instance = new ToastExample();
}
return instance;
}

public void setContext(Context context) {
this.context = context;
}

public void showMessage(String message, int flg) {
if (flg == 1) {
Toast.makeText(this.context, message, Toast.LENGTH_SHORT).show();
} else if (flg == 2) {
Toast.makeText(this.context, message, Toast.LENGTH_LONG).show();
}
}
}
② eclipseで①をjarプラグインとして出力する。
参考URL:http://qiita.com/relzx/items/a35f7ab6dbacb48f7e26

③ Unityエディタ上の「Assets/Plugins/Android」配下に②で出力したjarプラグインを配置する。
※パスがなければ作成すること

④ Unityエディタ上の「Assets/Plugins」配下にjarプラグインを呼び出すクラスを作成する。
using UnityEngine;
using System.Collections;

public class HandheldUtil {
private static AndroidJavaObject toastExample;

public static void Initialize() {
using(AndroidJavaClass pluginClass = new AndroidJavaClass("com.example.unitytoast.ToastExample")) {
if(pluginClass != null) {
toastExample = pluginClass.CallStatic<AndroidJavaObject>("instance");
toastExample.Call("setContext", currentActivity);
}
}
}

public static void ToastExample(string str, int flg) {
currentActivity.Call("runOnUiThread", new AndroidJavaRunnable(() => {
toastExample.Call("showMessage", str, flg);
}));
}
}

⑤ メッセージを出したい場所で④を呼ぶ
HandheldUtil.Initialize();


HandheldUtil.ToastExample("Toastメッセージを表示", 1);

関連記事
[タグ] ネイティブ連携

コメント

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。