【问题标题】:Can somebody please explain WaitForSeconds()?有人可以解释一下 WaitForSeconds() 吗?
【发布时间】:2016-12-12 22:40:44
【问题描述】:

我试图让我的代码在做某事之前等待x 秒。我查找了如何执行此操作,并了解了 WaitForSeconds() 函数。不幸的是,每当我尝试使用它时,我的代码中都会出现红色下划线。我正在努力做到这一点,所以当你死后它会在你重生之前等待几秒钟:

 void Respawn()
{
    yield return new WaitForSeconds(5);
    gameObject.transform.position = spawnPoint;
}

我也知道我需要在某处放置 StartCoroutine(Example()); 之类的东西,但我也不知道该放在哪里。我该如何正确地做到这一点?

【问题讨论】:

    标签: c# unity3d wait


    【解决方案1】:

    yield return new WaitForSeconds(5); 必须在协程函数中使用。现在,您在void 函数void Respawn() 中使用它。将 void 更改为 IEnumerator 应该可以解决您的问题。

    IEnumerator Respawn()
    {
        yield return new WaitForSeconds(5);
        gameObject.transform.position = spawnPoint;
    }
    

    然后您可以使用StartCoroutine(Respawn()); 调用它。每次调用它都会等待5秒,然后执行gameObject.transform.position = spawnPoint;。如果您想了解它的工作原理,请访问here

    【讨论】:

    • 似乎添加它会阻止它做任何事情?
    • 添加 what 会阻止它做任何事情?
    • 将我的函数更改为协程函数会使函数什么也不做。
    • 这不是真的。您必须使用StartCoroutine(Respawn()); 而不是Respawn() 调用它。还记得我们上次谈到Debug.Log 吗?使用它。
    • 哦,所以不是说“Respawn()”而是说“StartCoroutine(Respawn())”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    相关资源
    最近更新 更多