IEnumerator仅工作一次

时间:2019-07-01 16:24:24

标签: c# unity3d

我需要这个IEnumerator每次都能工作,而不仅仅是一次。每次foi都是真的,就需要走。

我尝试使用Time.deltaTime,但是没有用...

我的角色需要按j才能使图块下来,就像桥一样。然后,在5秒钟之后,该桥需要上升,但只有在保持5秒钟之后才可以上升。

// Update is called once per frame
void Update()
{
    OnTriggerStay2D();
    StartCoroutine(mover2());
}

void OnTriggerStay2D()
{
    if (Input.GetKeyDown("j") && (colide2))
    {
        mover();
        foi = true;
    }
}

void OnTriggerEnter2D(Collider2D colisor)
{
    colide2 = true;
    Debug.Log("Inside2");
}

void OnTriggerExit2D(Collider2D colisor)
{
    colide2 = false;
    Debug.Log("Outside2");
}

void mover()
{
    chao.Translate(0,-2.5f,0 * velocity * Time.deltaTime);
}

IEnumerator mover2()
{
    yield return new WaitForSeconds(5);
    if (foi == true)
    {
        floor.Translate(0, 2.5f, 0 * velocity * Time.deltaTime);
        foi = false;
    }
}

0 个答案:

没有答案