在Unity上弹出UI文本几秒钟

时间:2018-11-18 15:21:52

标签: c# user-interface unity3d

我对编码还很陌生,在过去的一年里一直在学习,目前我正在做学校作业,我无法为自己的一生而想出这部分代码。

我有一个物品,当玩家与其互动时,会执行以下操作:

void Update ()
{
     if (isPlayerNear && Input.GetKeyDown(KeyCode.E) && Avatar.strenghtAttribute >= 2f)
    {
        levelUp.LevelUp();
        Destroy(gameObject);
    } 

我的升级功能基本上是这样的:

public void LevelUp()
{
     playerLevelText.text = ("You have gained a level!");
     strenghtAttribute++;
     intellectAttribute++;
     playerLevel++;
}

我试图弄清楚如何使playerLevelText.Text出现在屏幕上,但只出现几秒钟,我不知道如何使它工作。有人会友好地帮我吗?

1 个答案:

答案 0 :(得分:1)

您可以将文本设置为空白,或者启用/禁用文本对象。我建议为此使用协程。

predictions == labels

由于要销毁协程的游戏对象,协程将停止。一种解决方法是在另一个脚本中调用一个普通函数,然后再调用协程,这样执行就停留在一个脚本内(执行此操作可能更简洁)。

void Update ()
{
    if (isPlayerNear && Input.GetKeyDown(KeyCode.E) && Avatar.strenghtAttribute >= 2f)
    {
        levelUp.InitializeLevelUp());
        Destroy(gameObject);
    }