Я создаю новую игру и при запуске игры загружаю некоторые текстовые файлы и изображения в этом коде - это изображение, и я пытаюсь показать прогресс загрузки с помощью slider
Я могу загрузить, но я никогда не получаю прогресс результаты на слайдере, кажется, я что-то забыл, потому что у меня нет ошибки.
Это мой код, используемый для загрузки моего изображения
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Downloadcontent : MonoBehaviour {
public string urld = "https://wizard3d2019.altervista.org/wp-content/uploads/2020/05/pub1.jpg";
public float progressPercent;
public Text downvalue;
public Slider sld;
IEnumerator Start() {
StartCoroutine(Downcontentfile());
WWW www = new WWW(urld);
yield return www;
yield return new WaitForSeconds (1f);
}
IEnumerator Downcontentfile() {
WWW www = new WWW(urld);
while (!www.isDone)
{
progressPercent = www.progress;
sld.value = progressPercent;
yield return null;
}
StartCoroutine(ShowProgress2(www));
yield return www;
System.IO.File.WriteAllBytes(@"C:\Program Files (x86)\Wizard2019\pub1.jpg", www.bytes);
}
private IEnumerator ShowProgress2(WWW www) {
while (!www.isDone) {
downvalue.text = progressPercent.ToString();
Debug.Log(string.Format("Downloaded {0:P1}", www.progress));
yield return new WaitForSeconds(.5f);
}
Debug.Log("Done");
}
}
Окончательный код
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System.Collections.Generic;
#if UNITY_EDITOR
using UnityEditor;
#endif
[ExecuteInEditMode]
public class Downloadcontent : MonoBehaviour {
#if UNITY_EDITOR
[MenuItem("GameObject/UI/Radial Progress Bar")]
public static void addradprogressbar(){
GameObject obj = Instantiate(Resources.Load<GameObject>("UI/Radial ProgressBar"));
obj.transform.SetParent(Selection.activeGameObject.transform, false);
}
#endif
public WWW po;
public string urld = "https://wizard3d2019.altervista.org/wp-content/uploads/2020/05/pub1.jpg";
public Image imgprogressrad;
public float progressPercent;
public Text downvalue;
public Slider sld;
IEnumerator Start() {
StartCoroutine(Downcontentfile());
WWW www = new WWW(urld);
yield return www;
yield return new WaitForSeconds (1f);
}
IEnumerator Downcontentfile() {
WWW www = new WWW(urld);
while (!www.isDone)
{
StartCoroutine(ShowProgress2(www));
yield return null;
}
yield return www;
System.IO.File.WriteAllBytes(@"C:\Program Files (x86)\Wizard2019\pub1.jpg", www.bytes);
}
private IEnumerator ShowProgress2(WWW www) {
progressPercent = www.progress * 100;
while (!www.isDone) {
downvalue.text = progressPercent.ToString();
sld.value = progressPercent;
imgprogressrad.fillAmount = progressPercent / 100;
Debug.Log(string.Format("Downloaded {0:P1}", www.progress));
yield return new WaitForSeconds(.5f);
}
Debug.Log("Done");
sld.value = 100;
imgprogressrad.fillAmount =1;
downvalue.text = "100,00";
}
void Update(){
//downvalue.text = progressPercent.ToString();
//sld.value = progressPercent;
}
}