Страница 1 из 1

Логика в коде + загрузка изображений в андроид

СообщениеДобавлено: 25 апр 2018, 16:42
labrico
Немного (много) запутался в логике
есть код
Синтаксис:
Используется csharp
 void Spriteon3()
    {
         

        string url = InputField_url.GetComponent<InputField>().text;
        WWW www = new WWW(url);
        tex = http://www.texture;
        Sprite m_Sprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 200.0f);

        if ((m_Sprite != null) && (InputField_name.GetComponent<InputField>().text != null))
        {
            int j2 = imgs.Length;
            Debug.Log("Длина до :  " + imgs.Length + "j2 до " + j2);
            Array.Resize(ref imgs, (j2 + 1));
            imgs[j2] = new arrClass();
            imgs[j2].arr_Sprite = m_Sprite;
            imgs[j2].kolich = imgs.Length;
            Debug.Log("Длина после :  " + imgs.Length + " имя " + InputField_name.GetComponent<InputField>().text);
            imgs[j2].Name = InputField_name.GetComponent<InputField>().text;
            Debug.Log("итого имя? :  " + imgs[j2].Name + " количество " + imgs[j2].kolich);
        }
        else {
            Panel_help.SetActive(true);
            text_help.text = "Заполните все поля, выберите рисунок и дайте ему описание";
        }

    }

Если есть спрайт и есть текст в поле текст то выполняем иначе выводим панельку с с текстом подсказкой. Возможно нужно проверять пустое поле не как ноль а как пустая стока или что-то в эту сторону.

Нужна ваша помощь

Re: Логика в коде

СообщениеДобавлено: 25 апр 2018, 17:03
Anonymyx
.text.Length > 0

Re: Логика в коде

СообщениеДобавлено: 25 апр 2018, 17:06
waruiyume
String.IsNullOrEmpty

Re: Логика в коде

СообщениеДобавлено: 25 апр 2018, 17:09
юnity
Синтаксис:
Используется csharp
void Spriteon3()
    {
         
       Panel_help.SetActive(false);//
        string url = InputField_url.GetComponent<InputField>().text;
        WWW www = new WWW(url);
        tex = http://www.texture;
        Sprite m_Sprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 200.0f);

        if ((m_Sprite != null) && (InputField_name.GetComponent<InputField>().text != null))
        {
            int j2 = imgs.Length;
            Debug.Log("Длина до :  " + imgs.Length + "j2 до " + j2);
            Array.Resize(ref imgs, (j2 + 1));
            imgs[j2] = new arrClass();
            imgs[j2].arr_Sprite = m_Sprite;
            imgs[j2].kolich = imgs.Length;
            Debug.Log("Длина после :  " + imgs.Length + " имя " + InputField_name.GetComponent<InputField>().text);
            imgs[j2].Name = InputField_name.GetComponent<InputField>().text;
            Debug.Log("итого имя? :  " + imgs[j2].Name + " количество " + imgs[j2].kolich);
        }
        else {
            Panel_help.SetActive(true);
            text_help.text = "Заполните все поля, выберите рисунок и дайте ему описание";
        }

    }

Может так? Если нажал чтоб сначала убиралась панелька. Если снова пустое поле, то обратно показывалась.

Re: Логика в коде

СообщениеДобавлено: 26 апр 2018, 11:03
labrico
С пустой строкой действительно оказалось, спасибо

Чтобы не плодить сущности задам вопрос тут. Взял ассет для того чтобы работать с погрузкой файлов:
https://forum.unity.com/threads/simple- ... ce.441908/

если работать в самом юнити и подтягивать абсолютные пути по типу C:\Users то все прекрасно.
если билд скидываю на телефон где пути /storage/emulated/0/document/12.jpg итд то вместо спрайта серый квадрат.

Что я делаю не так(о чем я не знаю)
скрины:
https://drive.google.com/open?id=15PJ4s ... Xz0P2tvzOF
https://drive.google.com/open?id=1jEIOk ... FpqoYGX6DO

Re: Логика в коде + загрузка изображений в андроид

СообщениеДобавлено: 26 апр 2018, 11:46
Pollux
Синтаксис:
Используется csharp
WWW www = new WWW("file://" + path);

также проверьте есть ли у приложения соответствующее разрешение на чтение

Re: Логика в коде + загрузка изображений в андроид

СообщениеДобавлено: 26 апр 2018, 12:05
labrico
Pollux писал(а):
Синтаксис:
Используется csharp
WWW www = new WWW("file://" + path);

также проверьте есть ли у приложения соответствующее разрешение на чтение

Спасибо сейчас попробую

Это моя первая программа на юнити и на с#
как проверить разрешение есть или нет?

Re: Логика в коде + загрузка изображений в андроид

СообщениеДобавлено: 26 апр 2018, 14:32
Pollux
Проверить можно в свойствах установленного приложения на устройстве. Но, если файл лежит во внутренней памяти, то вроде никакие разрешения не нужны, доступ к ней должен быть по умолчанию. Если во внешней памяти (SD card), то для чтения требуется в манифесте приложения указать запрос на разрешение: android.permission.READ_EXTERNAL_STORAGE.
Также хочу заметить, что для доступа к файлу в ОС Android путь должен начинаться с file://