小编Sai*_*aif的帖子

Unity 中协程内的 while 循环

我有两个脚本。第一个脚本在开始时被调用,如下所示:Script1.cs

private Script2 script2;

void Start () {
        script2= (Script2) GameObject.FindObjectOfType (typeof (Script2));
        StartCoroutine("CallTrigger");
    }

IEnumerator CallTrigger() {
        while(script2.hasTriggered == true){
         Debug.Log("Success");
         script2.hasTriggered = false;
        }
    yield return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的脚本2如下:

public bool hasTriggered = false;
Run Code Online (Sandbox Code Playgroud)

由于我的第一个脚本首先被调用,所以我希望 CallTrigger() 函数等待,直到 script2 中的 bool 设置为 true。不幸的是, while() 不是我认为的正确方法,因为它不适合我。我知道最好的方法是使用 Update() 但我正在使用此脚本的多个实例,其中只有一些实例在开始时被调用。

那么如何让 CallTrigger 等待,直到 script2 中的 hasTriggered 设置为 true 为止?

c# unity-game-engine

2
推荐指数
1
解决办法
7828
查看次数

标签 统计

c# ×1

unity-game-engine ×1