#unity3d #android-progressbar #assetbundle #unity-ui #unitywebrequest
#unity3d #android-progressbar #assetbundle #unity-ui #unitywebrequest
Вопрос:
(Извините за плохой английский) Привет, я использую этот код для загрузки assetbundle или файлов .mp4 через unitywebrequest :
public IEnumerator Download (List<string> urls) {
for (int i = 0; i < urls.Count; i ) {
string ext = Path.GetExtension (urls[i]);
if (ext == ".mp4") {
uwr = UnityWebRequest.Get (urls[i]);
}
if(ext == ".unity3d") {
uwr = UnityWebRequestAssetBundle.GetAssetBundle(urls[i]);
}
string fileName = Path.GetFileName (urls[i]);
string path = Path.Combine (myFolder "/" fileName);
uwr.downloadHandler = new DownloadHandlerFile (path);
StartCoroutine (ShowDownloadProgress (uwr)); // Progress Bar With Unity Slider
yield return uwr.SendWebRequest ();
if (uwr.isNetworkError || uwr.isHttpError) {
print ("Error");
}
else {
print ("File successfully downloaded and saved to " path);
}
}
}
И используя этот код, чтобы показать ход загрузки с помощью Unity slider:
public IEnumerator ShowDownloadProgress (UnityWebRequest www) {
while (!www.isDone) {
downloadProgressSlider.value = www.downloadProgress;
downloadProgressTxt.text = (string.Format ("{0:0%}", www.downloadProgress));
yield return new WaitForSeconds (.01f);
}
downloadProgressSlider.value = 0;
}
В редакторе Unity все в порядке, когда код загружает любой тип файла, и я могу видеть изменение значения слайдера и заполнять его:
Но мой export .apk имеет другой результат, он показывает заполнение слайдера только при загрузке файлов .mp4 приложением, но для другого типа файлов, таких как .xml,.unity3d или т. Д. Значение переходит в конец для каждого файла!