【Unity】AndroidでToastを使う

概要

Toast機能というのはコレです。図1に示すように、Androidでよく見かける画面下方のポップアップのことを指します。

図1.Toast機能

実装

まずプロジェクトを作り、C#スクリプトを作ります。
名前は”ShowToastOnAndroid”とします。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ShowToastOnAndroid : MonoBehaviour
{
    private void Start()
    {
        ShowToast("Hello!");
    }

    public static void ShowToast(string text)
    {
        if (Application.platform == RuntimePlatform.Android)
        {
            AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
            AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

            activity.Call("runOnUiThread", new AndroidJavaRunnable(
                () =>
                {
                    AndroidJavaClass Toast = new AndroidJavaClass("android.widget.Toast");
                    AndroidJavaObject javaString = new AndroidJavaObject("java.lang.String", text);
                    AndroidJavaObject context = activity.Call<AndroidJavaObject>("getApplicationContext");
                    AndroidJavaObject toast = Toast.CallStatic<AndroidJavaObject>("makeText", context, javaString, Toast.GetStatic<int>("LENGTH_SHORT"));
                    toast.Call("show");
                }
                )
            );
        }
    }
}

これを、適当なオブジェクトにアタッチします。
Android端末上で実行すると、図1に示したようにToast表示をすることが出来ます。


※プラットフォームの判別については、この記事が詳しいです。

作成者: rarafy

2013年くらいからUnityを触っているかもしれません。 特に書くこともありませんが、趣味は部屋の掃除です。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です