Unity3D 中的 WaitForSeconds

WaitForSeconds in Unity3D

我在 Unity 中有一个 IENumerator,它每 0.70f-0.82f 激活一个地板对象,因此地板对象之间的间隙是随机生成的。问题是,当某人的 FPS 下降时,差距会很大,他们的玩家没有机会到达下一层。我可以使 "yield WaitForSeconds" fps 独立吗? 这是代码:

IEnumerator spawnFloors () {

    while (playerControll.isAlive) {
                    for (int i = 0; i < floors.Length; i++) {

                            spawnWait = Random.Range (0.70f, 0.82f);  // 0.65f, 0.85f; aktuell = 0.70f, 0.82f;
                            Vector2 spawnPosition = new Vector2 (transform.position.x, transform.position.y);
                            Quaternion spawnRotation = Quaternion.identity;
                            for (int a = 0; a < floors.Length; a++) {
                                    int randomFloor = Random.Range (0, 9);
                                    if (!floors [randomFloor].activeInHierarchy) {
                                            floors [randomFloor].SetActive (true);
                                            break;

                                    }
                            }
                            //Instantiate(floors[Random.Range (0, 3)], spawnPosition, spawnRotation);
                            yield return new WaitForSeconds (spawnWait);


                    }
            }

    }`

您是否考虑过使用 FixedUpdate()

如果您想知道 what's the difference, unity has a tutorial for it

它仅用于游戏中的帧无关更新。