/ / Stop Audio Clip / Audiosource - c #, audio, unity3d

Zatrzymaj klip audio / źródło audios - c #, audio, unity3d

Mam bardzo długi klip audio, który powinien zacząć grać, gdy pewien warunek zostanie spełniony (1. IF w kodzie poniżej) i grać dalej, dopóki nie zostanie spełniony inny warunek (2nd IF).

Problem polega na tym, że nie potrafię sprawić, by przestał grać audioclip, spróbowałem audio.Stop (), ale jest napisane, że istnieje definicja dla Stop (), czy możesz pomóc?

using UnityEngine;
using System.Collections;

public class PowerShutdown: MonoBehaviour {

public AudioClip[] on_sfx;
int i;
int k;

void Start ()
{
k = 1;
}

void Update ()
{
if (PlayLevel1.percentageLoadProductionint < 100 && StateManager.activeState is PlayState && Time.timeSinceLevelLoad > 1 && k== 1)
{
AudioSource.PlayClipAtPoint (on_sfx [0], transform.position);
k = 2;
}

if (PlayLevel1.percentageLoadProductionint > 100 && StateManager.activeState is PlayState && Time.timeSinceLevelLoad > 1 && k == 2)
{
audio.Stop ();
AudioSource.PlayClipAtPoint (on_sfx [1], transform.position);
k = 1;
}
}
}

Dzięki!

Odpowiedzi:

0 dla odpowiedzi № 1

Uważam, że problem polega na tym, że "PlayClipAtPoint"jest metodą statyczną, a metoda zatrzymania spowoduje problemy z nią związane z powodu błędu odniesienia. Odczytywania dokumentów mówi "Ta funkcja tworzy źródło dźwięku, ale automatycznie usuwa je po zakończeniu odtwarzania klipu."

Oznacza to, że nowe "źródło dźwięku" jest tworzone w przestrzeni 3D określonej do odtwarzania żądanego dźwięku. Oznacza to, że albo potrzebujesz odniesienia do nowego źródła dźwięku (nie wiesz, jak byś to zrobił) lub użyj innej metody gry.