Можно ли загрузить изображение на едином холсте из URL-адреса? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть приложение, которое пытается отобразить изображение из URL-адреса (URL-адрес работает), я погуглил и нашел этот код:

public void Start()
    {

        StartCoroutine(GetRequest(URL + code + "&position=" + position)); //the parameters are to get to the correct image in the database
    }
    IEnumerator GetRequest(string url)
    {
        UnityWebRequest request = UnityWebRequestTexture.GetTexture(url);
        yield return request.SendWebRequest();
        if (request.isNetworkError || request.isHttpError)
            Debug.Log(request.error);
        else
            textureDisplayer.texture = ((DownloadHandlerTexture)request.downloadHandler).texture;
    }

Но оно отмечает ошибку в "textureDisplayer.texture" часть, и у меня этот объект как изображение, и когда я изменяю его на MainTexture, он говорит, что вся строка содержит ошибку.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Вы говорите, что ваш textureDisplayer равен Image. У него нет свойства texture.

Обычно вы назначаете Image.sprite, поэтому вы хотите создать Sprite с использованием Sprite.Create и используйте его вместо этого.

IEnumerator GetRequest(string url)
{
    UnityWebRequest request = UnityWebRequestTexture.GetTexture(url);
    yield return request.SendWebRequest();
    if (request.isNetworkError || request.isHttpError)
    {
        Debug.LogWarning(request.error);
        yield break;
    }

    var texture = DownloadHandlerTexture.GetContent(uwr);;
    var sprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), Vector2.one * 0.5f);
    textureDisplayer.sprite = sprite;
}
0 голосов
/ 17 июня 2020

Похоже, что textureDisplayer (что бы это ни было) не был Материалом, поэтому отображалась ошибка «не имеет определения текстуры».

Скажем, у вас есть игровой объект с именем mycube , вы можете установить материал в textureDisplayer с помощью следующего скрипта:

        GameObject mygameobject = GameObject.Find("mycube");
        Material textureDisplayer = mygameobject.GetComponent<Renderer>().material;

Затем вы можете получить доступ к mainTexture с помощью следующего скрипта:

textureDisplayer.mainTexture
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...