我正在创建一个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秒后,出现在最近的检查站之后的玩家会立即消失,然后经过多次重复后,玩家会重新出现。
我怎样才能解决这个问题?
3
喜欢动画截图!
—
Konerak
也称为gifs
—
user1306322