Unity2D:每按一次按钮,就开始一个新的Coroutine

时间:2016-09-01 13:14:36

标签: button unity3d

有没有办法在按下按钮时启动新的Coroutine?我制作了一个脚本来检查按下按钮的次数,但我不知道如何实现一个调用,这会增加Corutine中的按键次数(buttonCount ++)。可能吗?

public int buttonCount = 0;

public void Check() {
    buttonCount ++;
}

我正在使用StartCoroutine:

public GameObject LeftUp, RightUp, LeftDown, RightDown, ForceSphere;
public int buttonCount = 0;

public void Check() {
    buttonCount ++;
}

public void ActivateForceField ()
{
        StartCoroutine (CreateForceField ()); 
        forceActive = true; 
}

IEnumerator CreateForceField ()
{
    LeftUp.SetActive (true);
    RightUp.SetActive (true);
    yield return new WaitForSeconds (1.0f);
    LeftDown.SetActive (true);
    RightDown.SetActive (true);
    yield return new WaitForSeconds (1.0f);
    LeftUp.SetActive (false);
    RightUp.SetActive (false);
    yield return new WaitForSeconds (1.0f);
    LeftDown.SetActive (false);
    RightDown.SetActive (false);
    //yield return new WaitForSeconds (1.0f);
    ForceSphere.SetActive (true);
    yield return new WaitForSeconds (10.0f);
    ForceSphere.SetActive (false);

    forceActive = false;
}

我试过把Check();在我的IEnumerator开始但它没有工作。谢谢:))

1 个答案:

答案 0 :(得分:1)

例如,如果包含ActivateForceField的脚本名为TheScript,则为

创建一个UI按钮,在检查器中选择您的按钮,然后

- 查看检查器中的按钮脚本,然后

- 查看“点击”

- 然后选择包含gameobject

TheScript

- 然后在下一个选择框中,选择TheScript - > ActivateForceField()

这样每次单击按钮时,都会调用此函数