Hallo,
ich habe mich jetzt einmal ein wenig mit Unity beschäftigt und auch schon ein kleines Spiel "gebaut". Leider habe ich ein Problem. Es ist nämlich so, dass es mir nicht so gut gefällt, wenn der Spieler sofort respawned, wenn er stirbt. Deshalb habe ich einmal nachgeschaut, wie man eine Verzögerung einbaut und bin auch fündig geworden. Leider finde ich keine Lösung, um dieses Problem zu umgehen. Der Code sieht wie folgt aus:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class KillPlayer : MonoBehaviour
{
[SerializeField]
Transform spawnPoint;
public float RespawnDelay;
public void OnCollisionEnter2D(Collision2D col)
{
if (col.transform.CompareTag("Player"))
{
Respawn();
col.transform.position = spawnPoint.position;
ScoreScript.ScoreValue++;
}
}
public void Respawn()
{
StartCoroutine("WaitCoroutine");
}
IEnumerator WaitCoroutine()
{
yield return new WaitForSeconds(RespawnDelay);
}
}
Es fällt natürlich auf, dass die Zeile
col.transform.position = spawnPoint.position;
in die WaitCoroutine-Klasse muss. Nur wenn ich das mache, wird herumgemeckert (zu Recht), dass col im aktuellen Kontext nicht vorhanden ist. Wie kann ich diesen Fehler umgehen?
Danke an alle hilfreichen Antworten!