Saya membuat game 2D Platformer di mana jika pemain jatuh dari pangkalan / tanah maka saya ingin pemain untuk respawn di pos pemeriksaan terdekat. Namun saya ingin ada penundaan antara pemain jatuh dari tanah dan respawn. Ini adalah bagian dari kode saya untuk mencapai tujuan ini:
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;
}
Ini berfungsi dengan baik untuk penundaan respawn kecil seperti 1 atau 2 detik. Tetapi pada peningkatan penundaan menjadi 5 detik, pemain setelah muncul di pos pemeriksaan terdekat menghilang dalam sekejap dan kemudian setelah beberapa kali pengulangan pemain muncul kembali.
Ini untuk penundaan waktu 2 detik
Ini untuk penundaan waktu 5 detik
Bagaimana saya bisa memperbaikinya?