У меня есть код, который автоматически воспроизводит звук при обнаружении цели и останавливается при потере цели.Что я делаю, так это то, что хочу повторить звук цели, найденной в данный момент.Проблема в том, что когда я нажимаю кнопку воспроизведения, воспроизводится звук последней найденной цели и текущая цель.
Я кодировал это в сценарии DefaultTrackableEventHandler.Вот мой код:
public AudioSource soundTarget;
public AudioClip clipTarget;
private AudioSource[] allAudioSources;
public Button Button;
void StopAllAudio()
{
allAudioSources = FindObjectsOfType(typeof(AudioSource)) as AudioSource[];
foreach (AudioSource audioS in allAudioSources)
{
audioS.Stop();
}
}
void playSound(string ss)
{
clipTarget = (AudioClip)Resources.Load(ss);
soundTarget.clip = clipTarget;
soundTarget.loop = false;
soundTarget.playOnAwake = false;
soundTarget.Play();
}
public void ReplayAudio()
{
soundTarget.PlayOneShot(clipTarget);
}
В публичной виртуальной пустоте OnTrackingFound ()
public virtual void OnTrackingFound()
{
if (mTrackableBehaviour.TrackableName == "letterA")
{
playSound("sounds/airplane");
Button.onClick.AddListener(ReplayAudio);
}
if (mTrackableBehaviour.TrackableName == "letterB")
{
playSound("sounds/banana");
Button.onClick.AddListener(ReplayAudio);
}
// На отслеживание потерян: StopAllAudio ();