Я загружаю ogg-файлы с диска с помощью WWW. Так вот, при получении audioClip из загруженного экземпляра WWW, наблюдаю подвисания. Учитывая, что файлы загружаются в процессе игры, хотелось бы избежать подобных вещей.
Пример:
Синтаксис:
Используется csharp
var www = new WWW(@"file://C:/myfile.ogg");
yield return www;
// следующая строчка подвисает
var clip = www .audioClip;
yield return www;
// следующая строчка подвисает
var clip = www .audioClip;
Вынести в другой поток эту операцию юнити не разрешает.
Почему нельзя загрузить всю музыку заранее? Потому что при загрузке 10-15 таких файлов (по 3-5 мб) UnityEngine занимает 1,5 Гб оперативки. А если загружать по одному - тогда можно удалять предыдущий AudioClip и экономить память.
При обычном импорте аудио в юнити можно настроить параметр StreamFromDisk. Тогда аудио будет читаться непосредственно с диска и не занимать память. Можно ли так же застримить файлы, которые я читаю [с диска] с помощью WWW?
Или Вы можете предложить еще какие-нибудь варианты?
StackOverflow