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

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

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

Сообщение labrico 25 апр 2018, 16:42

Немного (много) запутался в логике
есть код
Синтаксис:
Используется 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 = "Заполните все поля, выберите рисунок и дайте ему описание";
        }

    }

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

Нужна ваша помощь
Последний раз редактировалось labrico 26 апр 2018, 11:36, всего редактировалось 1 раз.
Аватара пользователя
labrico
UNец
 
Сообщения: 28
Зарегистрирован: 16 ноя 2012, 07:34

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

Сообщение Anonymyx 25 апр 2018, 17:03

.text.Length > 0
Аватара пользователя
Anonymyx
Адепт
 
Сообщения: 1973
Зарегистрирован: 05 апр 2015, 15:55

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

Сообщение waruiyume 25 апр 2018, 17:06

String.IsNullOrEmpty
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

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

Сообщение юnity 25 апр 2018, 17:09

Синтаксис:
Используется 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 = "Заполните все поля, выберите рисунок и дайте ему описание";
        }

    }

Может так? Если нажал чтоб сначала убиралась панелька. Если снова пустое поле, то обратно показывалась.
Give exact coordinates of the decision of the problems
Аватара пользователя
юnity
UNITрон
 
Сообщения: 290
Зарегистрирован: 21 июл 2015, 18:30

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

Сообщение labrico 26 апр 2018, 11:03

С пустой строкой действительно оказалось, спасибо

Чтобы не плодить сущности задам вопрос тут. Взял ассет для того чтобы работать с погрузкой файлов:
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
Аватара пользователя
labrico
UNец
 
Сообщения: 28
Зарегистрирован: 16 ноя 2012, 07:34

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

Сообщение Pollux 26 апр 2018, 11:46

Синтаксис:
Используется csharp
WWW www = new WWW("file://" + path);

также проверьте есть ли у приложения соответствующее разрешение на чтение
Аватара пользователя
Pollux
UNITрон
 
Сообщения: 276
Зарегистрирован: 01 сен 2016, 22:31

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

Сообщение labrico 26 апр 2018, 12:05

Pollux писал(а):
Синтаксис:
Используется csharp
WWW www = new WWW("file://" + path);

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

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

Это моя первая программа на юнити и на с#
как проверить разрешение есть или нет?
Аватара пользователя
labrico
UNец
 
Сообщения: 28
Зарегистрирован: 16 ноя 2012, 07:34

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

Сообщение Pollux 26 апр 2018, 14:32

Проверить можно в свойствах установленного приложения на устройстве. Но, если файл лежит во внутренней памяти, то вроде никакие разрешения не нужны, доступ к ней должен быть по умолчанию. Если во внешней памяти (SD card), то для чтения требуется в манифесте приложения указать запрос на разрешение: android.permission.READ_EXTERNAL_STORAGE.
Также хочу заметить, что для доступа к файлу в ОС Android путь должен начинаться с file://
Аватара пользователя
Pollux
UNITрон
 
Сообщения: 276
Зарегистрирован: 01 сен 2016, 22:31


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 38