我想制作一个公共警报窗口,以显示有关某些信息的信息,可能是警告,教程等,
我认为如果有一种方法可以在收到事件时弹出警报小部件(大多数只是一个框边框,一个关闭按钮,信息文本和一些提示符号),所以在游戏我可以通过静态方法拍摄消息,而小部件可以弹出。
我没有问题做事件部分,但我无法找到一种方法来激活小部件的游戏对象,因为它将在游戏开始时被停用,并且似乎无法为自己分配事件池。
有办法吗?或者你如何处理这个问题?
到目前为止,这是我完成的事件分配:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class WarningTextUGUIController : MonoBehaviour {
private Text text;
// Use this for initialization
void Start () {
text = GetComponent<Text>();
text.text = ApplicationModel.CurrentErrMsg;
ApplicationModel.OnErrMsg += ChangeErrMsg;
}
private void ChangeErrMsg(string msg, bool isNgui)
{
if (!isNgui)
{
text.text = msg;
if (!gameObject.transform.parent.parent.gameObject.activeSelf)
{
gameObject.transform.parent.parent.localScale = new Vector3(0f, 0f, 0f);
gameObject.transform.parent.parent.gameObject.SetActive(true);
LeanTween.scale(gameObject.transform.parent.parent.gameObject, new Vector3(1f, 1f, 1f), 0.2f).setEase(LeanTweenType.easeInBounce);
}
}
}
private void OnDestroy()
{
ApplicationModel.OnErrMsg -= ChangeErrMsg;
}
}
我必须注意,如果我在游戏开始时使小部件处于活动状态,那么事情就会起作用,但我必须禁用它,因为在大多数情况下都不应该看到它。