如何让ui文本在五秒钟后出现在场景中,并使ui文本在八点之后消失unity3d

时间:2016-09-05 20:07:36

标签: c# unity3d text unity5

我遇到了一些问题。我需要UI文本在场景中显示至少六秒后,然后八点消失。这是我的代码:

#include <string>

1 个答案:

答案 0 :(得分:0)

您没有在任何地方定义文本,也没有使用using UnityEngine.UI;导入UI命名空间。现在,如果您想在计算时查看时间,可以使用timeShown += Time.deltaTime;代码。

如果您只想等待几秒钟,那么只需使用yield return new WaitForSecondsRealtime(timeValue);yield return new WaitForSeconds(timeValue);

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

public class ssj : MonoBehaviour {
    public Text text;
    IEnumerator ShowMessageCoroutine(string message, float timeToShow = 10)
    {
        //Wait for 5 seconds
        yield return new WaitForSecondsRealtime(5f);

        // Show the text
        text.enabled = true;
        text.text = message;

        //Wait for 8 seconds
        yield return new WaitForSecondsRealtime(8f);

        // Hide the text
        text.enabled = false;
        text.text = "";
    }
}

确保将文本拖到脚本中的文本插槽

标题说你要等5秒钟,显示文字,再等8秒然后隐藏文字,这就是上面的例子应该做的事情。虽然它对我没有意义。您很可能希望使用第二个参数来指定隐藏文本之前等待的时间。如果是这种情况,请执行以下操作:

public Text text;
IEnumerator ShowMessageCoroutine(string message, float timeToShow = 10)
{
    // Show the text
    text.enabled = true;
    text.text = message;

    //Wait for specified seconds (timeToShow)
    yield return new WaitForSecondsRealtime(timeToShow);

    // Hide the text
    text.enabled = false;
    text.text = "";
}

调用该函数:StartCoroutine(ShowMessageCoroutine("Hello", 8));