Импорт .png файла во время выполнения Unity Android - PullRequest
0 голосов
/ 21 октября 2018

У меня проблема при импорте файла .png в мой проект в коде.Это мой файл .png перед импортом:

После этого кода:

   var pngImage = LoadPNG(pngPath);
    string pngPath2 = Application.persistentDataPath + "/images/testImage.png";
    var meshRenderer = GameObject.Find("SimInput").GetComponent<MeshRenderer>();
    meshRenderer.material.mainTexture = pngImage;


    public static Texture2D LoadPNG(string filePath)
{
    Texture2D tex = null;
    byte[] fileData;

    if (File.Exists(filePath))
    {
        fileData = File.ReadAllBytes(filePath);            
        tex = new Texture2D(2, 2);
        tex.LoadImage(fileData); 
    }
    return tex;
}

Я получаю результат, как показано ниже: enter image description here

Где я делаю ошибку?

Я пытался сохранить этот файл снова в формате .png, но результат был таким же, как на первом изображении.Есть ли какие-либо свойства, которые нужно изменить в Unity?

Заранее спасибо.

1 Ответ

0 голосов
/ 21 октября 2018

Это вопрос прозрачности.Вы используете стандартный материал, который имеет «Режим рендеринга» для установки «Непрозрачный» .Вы должны установить это значение на "Fade" или "Transparent" .В этом случае «Fade» , должно работать лучше.После этого вы можете управлять ползунками Metallic и Smoothness , чтобы сделать их темнее или светлее.Вы также можете использовать другой шейдер, например Sprites ---> По умолчанию , UI ---> По умолчанию или Не светится ---> Прозрачный и они должны работать без необходимости устанавливать что-либо еще.

enter image description here


Покаэто решит вашу проблему, если все, что вам нужно сделать, это отобразить загруженную текстуру, используйте компонент RawImage.Это правильный способ отображения Texture2D.Чтобы создать его, перейдите в GameObject ---> UI ---> RawImage , затем используйте простой код ниже, чтобы отобразить его на RawImage.

//Set a RawImage in the Inspector
public RawImage rawImage;

void Start()
{
    Texture2D pngImage = LoadPNG(pngPath);
    rawImage.texture = pngImage;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...