Verzögerung in C#/Unity?
Ich habe in Unity ein Script, was bei Berührung mit Enemy das Objekt zerstört.
Hier das Script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DestroyObject : MonoBehaviour
{
void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "Enemy")
{
Destroy(gameObject);
}
}
}
Aber, das Objekt wird gleich zerstört, wenn es Enemy berührt.
Wie mache ich das, das vor
Destroy(gameObject);
eine kurze Verzögerung ist?
Danke für jede Antwort!
2 Antworten
Ist zwar ein bisschen spät, aber für die, die es vielleicht auch wissen wollen:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading; // Diese Bibliothek einbinden
public class DestroyObject : MonoBehaviour
{
void OnCollisionEnter(Collision other)
{
if (other.gameObject.tag == "Enemy")
{
/*Wartet 20 Ticks. Wert kann beliebig geändert
werden*/
Thread.Sleep(20);
Destroy(gameObject);
}
}
}
Woher ich das weiß:Hobby
var delay = 2.0; //This implies a delay of 2 seconds.
function WaitAndDestroy(){
yield WaitForSeconds(delay);
Destroy (gameObject);
}