1
Respawnコルーチンの何が問題になっていますか?
プレイヤーがベース/グラウンドから落ちた場合、プレイヤーを最も近いチェックポイントでリスポーンさせる2Dプラットホーマーゲームを作成しています。ただし、プレイヤーが地面から落ちてからリスポーンするまでに遅延が必要です。これは、この目標を達成するための私のコードのセクションです。 private void OnTriggerEnter2D(Collider2D collision) { Debug.Log(collision.tag); if (collision.tag.Equals("Kill")) { StartCoroutine("Respawn"); } else if(collision.tag.Equals("Checkpoint")) { Animator flag = collision.GetComponent<Animator>(); if (!flag.GetBool("hasCrossed")) { flagCounter++; flag.SetBool("hasCrossed", true); checkpoint = collision.gameObject.transform.position; } } } IEnumerator Respawn() { yield return new WaitForSeconds(respawnDelay); transform.position = checkpoint; } これは、1秒または2秒のような小さなリスポーン遅延に対して正常に機能します。しかし、遅延を5秒に増やすと、最も近いチェックポイントに現れたプレーヤーはすぐに消えてしまい、かなりの数の繰り返しの後、プレーヤーが再び現れます。 これは2秒の遅延です これは5秒の遅延です どうすれば修正できますか?
19
unity
coroutines