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");
        }));
	}

}
相关文章
相关标签/搜索