Unity脚本能否在某些情况下听取事件和积极的自我?

时间:2017-07-04 10:31:08

标签: c# events unity3d

我想制作一个公共警报窗口,以显示有关某些信息的信息,可能是警告,教程等,

我认为如果有一种方法可以在收到事件时弹出警报小部件(大多数只是一个框边框,一个关闭按钮,信息文本和一些提示符号),所以在游戏我可以通过静态方法拍摄消息,而小部件可以弹出。

我没有问题做事件部分,但我无法找到一种方法来激活小部件的游戏对象,因为它将在游戏开始时被停用,并且似乎无法为自己分配事件池。

有办法吗?或者你如何处理这个问题?

enter image description here

到目前为止,这是我完成的事件分配:

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

}

我必须注意,如果我在游戏开始时使小部件处于活动状态,那么事情就会起作用,但我必须禁用它,因为在大多数情况下都不应该看到它。

0 个答案:

没有答案