Несколько вопросов здесь:
Прежде всего
Я беру имя в функции обновления и вставляю его в функцию IEnumerator.
Неа! Start
выполняется до Update
, поэтому вы не передадите имя там. В любом случае это не имеет смысла в методе Update
, который вызывается в каждом кадре, поэтому переместите его на вершину Start
.
Второй
это Thread.Sleep(1000);
не имеет смысла! Я думаю, вы хотите использовать WaitForSeconds
yield return new WaitForSeconds(1);
чтобы подождать секунду.
Наконец
Вы создали http-запрос, используя
WWW DataIta = new WWW("http://arnaples.altavista.org/QueryTestoITA.phpnum=" +name);
но вы не дождетесь окончания загрузки. Вы должны сделать
using(WWW DataIta = new WWW("http://arnaples.altavista.org/QueryTestoITA.phpnum=" + name))
{
yield return www;
// use result
}
В общем, я бы рекомендовал вместо WWW
использовать UnityWebRequest.Get
, который устарел и может быть удален в будущем. А также проверьте наличие ошибок загрузки или подключения
public class Prova2 : MonoBehaviour
{
Prova script1;
public string name;
public Text linguaitaliana=null;
IEnumerator Start()
{
script1=gameObject.GetComponent<Prova>();
name=script1.due;
yield return new WaitForSeconds(1);
using (var webRequest = UnityWebRequest.Get("http://arnaples.altavista.org/QueryTestoITA.phpnum=" + name))
{
// Request and wait for the desired page.
yield return webRequest.SendWebRequest();
if (webRequest.isNetworkError || webRequest.isHttpError)
{
Debug.LogFormat(this, "Download error due to {0} - {1}", webRequest.responseCode, webRequest.error);
}
else
{
Debug.Log("Download complete: " + webRequest.downloadHandler.text, this);
linguaitaliana.text = webRequest.downloadHandler.text;
}
}
}
}
Примечание: напечатано на смартфоне, поэтому никаких гарантий, но я надеюсь, что идея проясняется