Подгрузка файлов в Unity играет ключевую роль, так как надо делать приложение которое весит 20МБ-40МБ, не более. Далее уже в фоновом режиме приложение должно начинать подгрузку нужных вам файлов и компонентов.
Включаем работу приложения в фоне, в главном событии Start() нашей сцены.
void Start () { Application.runInBackground = true; }
Далее делаем уже подгрузку в нужной вам функции.
IEnumerator GetFile() { // ссылка откуда качаем var wwwRequest = new UnityWebRequest("http://"); wwwRequest.method = UnityWebRequest.kHttpVerbGET; // тут куда качаем наш файл в системе, обязательно использовать Application.persistentDataPath var dh = new DownloadHandlerFile(Application.persistentDataPath + "/audio.mp3"); dh.removeFileOnAbort = true; wwwRequest.downloadHandler = dh; if(wwwRequest.isDone != true) { Debug.Log(wwwRequest.downloadProgress); Debug.Log(wwwRequest.isDone); } yield return wwwRequest.SendWebRequest(); if (wwwRequest.isNetworkError || wwwRequest.isHttpError) { Debug.Log(wwwRequest.error); } else { Debug.Log("success"); } yield return wwwRequest; }
Вот и всё, теперь используем наш IEnumerator в функции.
public void publicToGetFile() { StartCoroutine(this.GetFile()); }
И уже эту функцию вставляем в наш компонент допустим MainCamera, далее добавляем в Button (onClick) наш компонент MainCamera, выбираем функцию publicToGetFile.
По нажатию кнопки у нас происходит скачивание файла, причём не используйте WWW компонент, используйте UnityWebRequest который пришёл на замену, и имеет обход переполнения памяти на Android устройствах.