Unity c# Trigger nur einmal auslösen?
ich habe ein sound triggerscript gemacht möchte aber das es nur einmal ausgelöst werden kann wie muss ich es ändern:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TriggerSound : MonoBehaviour
{
public AudioSource playSound;
void OnTriggerEnter(Collider other)
{
playSound.Play();
}
}
1 Antwort
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
programmieren, C Sharp, Unity
Setze dir einen Flag.
public class TriggerSound : MonoBehaviour
{
private bool notPlayedYet = true;
// ...
void OnTriggerEnter(Collider other)
{
if (notPlayedYet)
{
playSound.Play();
notPlayedYet = false;
}
}
// ...
Wenn das Skript danach gar nicht mehr benutzt wird, könntest du es auch (via enabled) deaktivieren oder (via Destroy) zerstören.
Assets\TriggerSound.cs(16,13): error CS0103: The name 'playSound' does not exist in the current context :(
Ich mache ein horror spiel und der gegner kann durch das objekt nicht durchlaufen wie würde es noch aussehen wenn man es desroyed ?