Oyuncu tabandan / yerden düşerse oyuncunun en yakın kontrol noktasında yeniden doğmasını istediğim bir 2D Platformer oyunu oluşturuyorum. Ancak yerden düşen oyuncu ile yeniden doğma arasında bir gecikme olmasını istiyorum. Bu, bu hedefe ulaşmak için kodumun bölümüdür:
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;
}
Bu, 1 veya 2 saniye gibi küçük yeniden doğma gecikmeleri için iyi çalışır. Ancak gecikmeyi 5 saniyeye çıkarırken, en yakın kontrol noktasında görününce oyuncu bir anda yok olur ve birkaç tekrardan sonra oyuncu yeniden ortaya çıkar.
Bu 2 saniyelik gecikme içindir
Bu 5 saniyelik gecikme içindir
Bunu nasıl düzeltebilirim?