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