Android開發實例 Unity顯示Toast

Android中的Toast是一種簡易的消息提示框。android

當視圖顯示給用戶,在應用程序中顯示爲浮動。和Dialog不同的是,它永遠不會得到焦點,沒法被點擊。用戶將多是在中間鍵入別的東西。Toast類的思想就是儘量不引人注意,同時還向用戶顯示信息,但願他們看到。並且Toast顯示的時間有限,Toast會根據用戶設置的顯示時間後自動消失。3d

 

這裏的全部作法都和前面同樣,只是前面咱們都只定義了一個簡單的add方法拿給Unity使用,並無什麼卵用。code

 

1 經過擴展MainActivity實現

在Android Studio中定義顯示Toast的方法blog

經過Unity調用get

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

public class Test : MonoBehaviour {

	void Start () {
        AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
        jo.Call("ShowToast", "Send from Unity");
	}

}

打包it

 

2 經過C#調用實現

沒那麼多操做,直接Unity代碼實現就好了。可是建議仍是用上面的方法,麻煩了許多,可是寫着簡單。io

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

public class Test : MonoBehaviour {

	void Start () {
        AndroidJavaClass unitPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = unitPlayer.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaClass toast = new AndroidJavaClass("android.widget.Toast");
        AndroidJavaObject context = currentActivity.Call<AndroidJavaObject>("getApplicationContext");

        currentActivity.Call("runOnUiThread",new AndroidJavaRunnable(() => {
            toast.CallStatic<AndroidJavaObject>("makeText", context, "Send from Unity", toast.GetStatic<int>("LENGTH_LONG")).Call("show");
        }));
	}

}
相關文章
相關標籤/搜索