我遇到了一些问题。我需要UI文本在场景中显示至少六秒后,然后八点消失。这是我的代码:
#include <string>
答案 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));