Вы не можете использовать ImageConverter
для преобразования байтов в компонент Unity Image
.
Не видя ретробов вашего кода, это сложно сказать, но я думаю, что вы хотите сделать, это загрузитьэто изображение из указанного пути или URL-адреса в sprite
компонента Image
.
public void GetTexture(string url, Action<Texture> onSuccess)
{
StartCoroutine (LoadTexture(url, onSuccess));
}
private IEnumerator LoadTexture(string url, Action<Texture> onSuccess)
{
UnityWebRequest www = UnityWebRequestTexture.GetTexture(url);
yield return www.SendWebRequest();
if(www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
onSuccess?.Invoke(((DownloadHandlerTexture)www.downloadHandler).texture);
}
}
Обратите внимание, что url
также может быть локальным путем к файлу или, тем не менее, вы получаете изображение из своей базы данных..
Чем вы можете создать Sprite
, используя
GetTexture(pathOrUrl, OnSuccess);
private void OnSuccess(Texture texture)
{
var tex = (Texture2D) texture;
var newSprite = Sprite.Create(new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 100.0f);
// Assign it to an Image component
imageReference.sprite = newSprite;
}
, или пропустить его и использовать вместо него компоненты RawImage .Тем не менее, обратите внимание, что это добавляет вызовы и их следует избегать.
private void OnSuccess (Texture texture)
{
rawImageReference.texture = texture;
}