Unity CSharp 2D текстура - PullRequest
       54

Unity CSharp 2D текстура

0 голосов
/ 22 сентября 2019

Я работаю над этой игрой, и изображение отлично отображается на игровом экране в редакторе Unity, но когда я собираю и запускаю изображение пустое.Вид игры в единстве:! ( Вид игры в единстве ) вид после построения источником текстуры является жесткий диск. изображение не находится в папке проекта и не встроено Есть предложения?Обратите внимание, что я изучаю Unity и CSharp (Новый пользователь).

Код кнопки:

public Category category;
public TextMeshProUGUI text;
public RawImage image;
public bool isFilled = false;
public int directoryLineNumber;

public void UpdateButtonData()
{
    text.text = category.name;
    image.texture = category.GetARandomImage();
    //image.Rebuild(0);
    isFilled = true;
}
{
    public string name;
    public string text;
    public List<Item> items;
    private string _path;
    //some code here not related
public Texture2D GetARandomImage()
    {
        DirectoryInfo dir = new DirectoryInfo(_path);
        FileSystemInfo[] images = dir.GetFileSystemInfos();
        int i = Random.Range(0, images.Length);
        if (images[i].ToString().Contains(".png"))
        {
            WWW wWW = new WWW(images[i].ToString());
            /* Wait !! */
            while (!wWW.isDone) { }
            return wWW.texture;
        }
        else return GetARandomImage();
    } 

1 Ответ

0 голосов
/ 24 сентября 2019

Привет. Все, я решил эту проблему, используя Textuer2d.LoadImage(wWW.bytes); вместо wWW.tetxure.

И теперь я могу использовать различные типы изображений, такие как .JPG и .JPEG. Код теперь выглядит такэто:

public Texture2D GetARandomImage()
{
    DirectoryInfo dir = new DirectoryInfo(_path);
    FileSystemInfo[] images = dir.GetFileSystemInfos();
    int i = Random.Range(0, images.Length);
    WWW wWW = new WWW(images[i].ToString());
    /* Wait !! */
    while (!wWW.isDone) { }
    Texture2D tex = new Texture2D(1, 1);
    tex.LoadImage(wWW.bytes);
    return tex;
}

Спасибо @Tiago за ваши предложения.

...