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
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
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
![](https://images.gutefrage.net/media/user/Leo83369/1620033515911_nmmslarge__153_0_1536_1536_ec92a92490ffdfbfc96caef09c13da7c.jpg?v=1620033516000)
var delay = 2.0; //This implies a delay of 2 seconds.
function WaitAndDestroy(){
yield WaitForSeconds(delay);
Destroy (gameObject);
}