как в unity AR устанавливать текстуру из обычного изображения

Создаю простой 3д объект в виде прямоугольника. На него нужно устанавливать изображения которых может быть много (>200). установка должна происходить по нажатию кнопок вперед назад. При этом объект должен работать в AR. Unity - 2019.4. ArCore - 2.1.16. Целевая ОС - android. В режиме game все прекрасно работает и переключается, но при создании приложения apk на телефоне появляется объект и текстур на нем нет. хотя кнопки масштаба работают, но переключение картинок нет. Если руками в инспекторе перенести текстуру на объект, она отображается в приложении, но только та которая была установлена. При этом создается папка и файл материала.

Код для установки текстур.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.UI;
using System.IO;
public GameObject Cube;
public static int curent_file = 0;
public string [] filePaths;

public void Start()
{
    filePaths = Directory.GetFiles(Application.dataPath + "/img/Materials/", "*.jpg");
    Texture2D tex = new Texture2D(2, 2);
    var fileData = File.ReadAllBytes(filePaths[curent_file]);
    tex.LoadImage(fileData);
    Cube.GetComponent<Renderer>().material.mainTexture = tex;
}

public void prevPage()
{   
    if (curent_file - 1 >= 0){
        curent_file -= 1;
        Texture2D tex = new Texture2D(0, 0);
        var fileData = File.ReadAllBytes(filePaths[curent_file]);
        tex.LoadImage(fileData);
        Cube.GetComponent<Renderer>().material.mainTexture = tex;
    }
}

public void nextPage()
{
    if (curent_file + 1 <= filePaths.Length-1){
        curent_file += 1;
        Texture2D tex = new Texture2D(0, 0);
        var fileData = File.ReadAllBytes(filePaths[curent_file]);
        tex.LoadImage(fileData);
        Cube.GetComponent<Renderer>().material.mainTexture = tex;
    }
}

public void ZoomInDesk()
{
    ScaleX += 1;
    var ScaleY = ScaleX * 0.5f;
    Cube.transform.localScale = new Vector3(ScaleX, ScaleY, 0.01f);
}

public void ZoomOutDesk()
{
    ScaleX -= 1;
    var ScaleY = ScaleX * 0.5f;
    Cube.transform.localScale = new Vector3(ScaleX, ScaleY, 0.01f);
}

введите сюда описание изображения введите сюда описание изображения


Ответы (0 шт):