C#上的WaitForSeconds

时间:2015-12-12 16:44:36

标签: c# unity3d wait seconds

看看这个简单的代码:

function Start()
{
    yield WaitForSeconds (4);
    Application.LoadLevel(1);
}

有效!我试图用C#做类似的东西,但处理器只是忽略了WaitForSeconds。这是我在C#中的代码:

using UnityEngine;
using System.Collections;

public class openingC : MonoBehaviour
{
    void Start()
    {
        executeWait(5);
        Application.LoadLevel(1);
    }

    void executeWait(float aux)
    {
        StartCoroutine(Wait(aux));
    }

    IEnumerator Wait(float seconds)
    {
        yield return new WaitForSeconds(seconds);
    }
}

有人可以向我解释为什么它不起作用吗?谢谢你的时间。

3 个答案:

答案 0 :(得分:3)

public class openingC : MonoBehaviour
{
    void Start()
    {
        executeWait(5);
        Application.LoadLevel(1);
    }

    void executeWait(float aux)
    {
        StartCoroutine(Wait(aux));
    }

    IEnumerator Wait(float seconds)
    {
        yield return new WaitForSeconds(seconds);
    }
}

首先,Start方法运行,调用executeWait,程序跳转到该方法。它找到协同程序并开始运行它,直到找到产量或方法结束。 Yield返回程序,指针返回executeWait并完成方法。指针返回到Start并调用Application.LoadLevel。

您想要挂起LoadLevel调用。

public class openingC : MonoBehaviour
{
    void Start()
    {
        StartCoroutine(Wait(5));
    }

    //You don't need executeWait

    IEnumerator Wait(float seconds)
    {
        yield return new WaitForSeconds(seconds);
        Application.LoadLevel(1);
    }
}

答案 1 :(得分:-1)

试试这个:

Thread.Sleep(500); //500 millisecond waiting...

Reference

答案 2 :(得分:-1)

这也应该没问题。

<?php

foreach ($_POST as $textareaValue) {
    echo "<p>$textareaValue</p>";
}