У меня есть сопрограмма, которая должна извлечь аудиоклип и затем запустить другую сопрограмму, которая воспроизводит этот клип и ждет, пока он не закончится, чтобы потом можно было воспроизвести другой клип.Проблема в том, что программа не переходит к сопрограмме, где я получаю аудиоклип.
private void RetrieveFromDatabase(int index)
{
Debug.Log($"{index} started...");
FirebaseDatabase.DefaultInstance.GetReference("/Teams/" + TeamsSelection.teamSelected + "/").Child(index.ToString()).Child("userPosition").GetValueAsync()
.ContinueWith(task =>
{
if (task.IsFaulted)
{
//handle error
}
else if(task.IsCompleted)
{
DataSnapshot snapshot = task.Result;
OnResponseGot(snapshot, index);
return;
}
});
}
private void OnResponseGot(DataSnapshot dataSnapshot, int index)
{
if (dataSnapshot == null || int.Parse(dataSnapshot.Value.ToString()) < 10)
{
Debug.Log("Trying again to retrieve " + index);
RetrieveFromDatabase(index);
}
else
{
int userPos = int.Parse(dataSnapshot.Value.ToString());
Debug.Log("retrieved userPos " + userPos);
StartCoroutine(FetchWithUWR(userPos, index));
//FetchWithResourceLoad(userPos, index);
}
}
IEnumerator FetchWithUWR(int userPos, int index)
{
Debug.Log("Starting uwr for audioFiles");
using (UnityWebRequest uwr = UnityWebRequestMultimedia.GetAudioClip($"C:/Users/Domas/Desktop/Projects/Wild_West/Assets/Resources/Audio/WAV_ENG/D{userPos}a", AudioType.WAV))
{
yield return uwr.SendWebRequest();
Debug.Log("yielded a file!");
if (uwr.isNetworkError)
{
Debug.Log(uwr.error);
}
else
{
AudioClip clip = DownloadHandlerAudioClip.GetContent(uwr);
Debug.Log("Starting Coroutine " + index);
StartCoroutine(PlayAudioClipAndStartRetrievingFromDatabase(index, clip));
}
}
}
Я даже не знаю, с чего начать искать проблему, потому что я не получаю никаких ошибок.программа просто продолжается, но без сопрограммы.