Стоит ли снова загружать изображения на главном экране из API или сначала сохранять их на устройстве для приложения AR на базе Unity? - PullRequest
0 голосов
/ 21 марта 2019

Когда приложение запускается, выполняются вызовы API и JSON преобразуется в строку. Используя URL-адреса изображений, я преобразую их в текстуры и устанавливаю их в виде необработанных изображений. Ниже показано, как выглядит мой домашний экран.

AppFlow

Когда я щелкаю ячейку на главном экране, она уводит меня на экран сведений о продукте. При этом я нажимаю кнопку AR, которая переводит меня на новую сцену где я размещаю контент AR в реальном мире. Проблема в том, что когда я открываю ARscene, все данные в старой сцене удаляются.то есть, когда я нажимаю кнопку «Назад» от сцены AR к сцене детали продукта. Изображения и детали продукта равны нулю. Для этой проблемы я сохранил их в настройках проигрывателя и изображениях в Application.persistentDataPath и позже загружаю их, когда получаю ответный удар от сцены AR.

После открытия сцены AR, когда я возвращаюсь на главный экран, я перезагружаю сцену, аналогичную тому, как открывается приложение.Хорошо ли загружать изображения из API, когда я возвращаюсь на домашний экран или сначала загружаю их в Application.persistentDatapath и загружаю изображения оттуда. Что мне делать с домашним экраном?

IEnumerator GetAllTextures(int m ,int n)
{


        Texture2D tex;
        tex = new Texture2D(150, 150, TextureFormat.DXT1, false);
    string url = JNode[m]["product_images"][n];



        WWW imgurllinks = new WWW(url);
        yield return imgurllinks;

        if (string.IsNullOrEmpty(imgurllinks.error))
        {
            yield return null;

        }

        imgurllinks.LoadImageIntoTexture(tex);
        Allassetimageurl.Add(new Imagesinfo(assetiid[m], JNode[m]["product_images"][n],tex));


}



IEnumerator FillData()
{

    for (int i = 0; i < assetimageurl.Count; i++)
    {
        Texture2D tex;
        tex = new Texture2D(150,150, TextureFormat.DXT1, false);


        WWW imgurllinks = new WWW(assetimageurl[i]);
        yield return imgurllinks;

        if (string.IsNullOrEmpty(imgurllinks.error))
        {
            yield return null;

        }

        imgurllinks.LoadImageIntoTexture(tex);
        rimg.texture = tex;

        TextureList.Add(tex);

        Productxt.text = productname[i];
        Pricetxt.text = "$" +assetpriceurl[i].ToString();


        var go=  Instantiate(Mainprefab, ParentTransform) as GameObject;



        GO.Add(go);


    }



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