Android开发实例 Unity显示Toast

Android中的Toast是一种简易的消息提示框。

当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的是,它永远不会获得焦点,无法被点击。用户将可能是在中间键入别的东西。Toast类的思想就是尽可能不引人注意,同时还向用户显示信息,希望他们看到。而且Toast显示的时间有限,Toast会根据用户设置的显示时间后自动消失。

这里的所有做法都和前面一样,只是前面我们都只定义了一个简单的add方法拿给Unity使用,并没有什么卵用。

1 通过扩展MainActivity实现

在Android Studio中定义显示Toast的方法

通过Unity调用

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

}

打包

2 通过C#调用实现

没那么多操作,直接Unity代码实现就行了。但是建议还是用上面的方法,麻烦了许多,但是写着简单。

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

}
原文地址:https://www.cnblogs.com/lmx282110xxx/p/10798664.html