TextField

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

TextField

Сообщение Sality 30 ноя 2011, 23:46

Вот такой вопрос, собственно нужно сделать обычное поле ввода, написал простой вариант перехвата ввода и запихивания в это поле, но вот как прицепить этот скрипт? если цепляю его просто к обьектам сцены, то он не срабатывает. а начинают срабатывать если делаю фокус на этот гуи элемент. как програмно прицепить скрипт к техтField.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: TextField

Сообщение DbIMok 01 дек 2011, 00:38

вставьте свой скрипт в правильном теге. просто и понятно сформулируйте, что вы хотите получить в результате. отвлекитесь вообще от поля привязок и т.д. например, мне нужно организовать ввод имени игрока. имя по умолчанию Player, длина имени ограничена 9 символами, курсор в это время может находиться в любом месте экрана, ввод имени заканчивается по нажатию Enter.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: TextField

Сообщение Sality 01 дек 2011, 01:09

Я понял. мне нужно поле ввода, курсор при этом должен быть в этом поле. С длинной не важно, потом определюсь.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: TextField

Сообщение DbIMok 01 дек 2011, 01:21

и в чем проблема? чем работа TextField не устраивает?
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.8k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: TextField

Сообщение Sality 01 дек 2011, 01:44

Каким образом мне к нему прицепить скрипт перехвата ввода? этого поля нету в дереве проэкта, поэтому я его создаю програмно.. значит и програмно должно быть возможность прицепить к нему скрипт.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: TextField

Сообщение IDoNotExist 01 дек 2011, 10:58

Sality писал(а):Вот такой вопрос, собственно нужно сделать обычное поле ввода, написал простой вариант перехвата ввода и запихивания в это поле

К чему это все? Какой ввод вы перехватываете? И главное зачем? TextField нынче уже сам не справляется с данной задачей? Неужели так сложно запихнуть текстовую строку в переменную и передать её в TextField?
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: TextField

Сообщение Kann 01 дек 2011, 11:21

Sality писал(а):Я понял. мне нужно поле ввода, курсор при этом должен быть в этом поле. С длинной не важно, потом определюсь.

на пустой ГО вешаете этот код из справки, нажимаем Play, радуемся.....
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public string stringToEdit = "Hello World";
    void OnGUI() {
        stringToEdit = GUI.TextField(new Rect(10, 10, 200, 20), stringToEdit, 25);
    }
}

http://unity3d.com/support/documentatio ... Field.html
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: TextField

Сообщение Sality 01 дек 2011, 11:24

Этот код не срабатывает, если курсор не стоит на TextField -де
вернее не так, Этот код срабатывает только тогда, када фокус стоит на том ГО, который имеет этот код. Если прицеплю к пустышке, то чтоб что-то написать в TextField() мне нужно поставить фокус на пустышку.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: TextField

Сообщение Kann 01 дек 2011, 11:34

так вы хотите сразу получить фокус на поле ввода ?
тогда смотрите тут http://unity3d.com/support/documentatio ... ntrol.html
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: TextField

Сообщение Sality 01 дек 2011, 11:38

Да нет, ребята, мне нужно получить обычное поле ввода, как в обычной программе. Просто строка, в которой можно писать.
Я так понял у унити гуи хромает, если они сделали кастрированый textField().

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

Вобщем, у кого возникает вопрос что тебе нужно, смотрим в правый верхний угол форума, где написано слово "Поиск". Вот такое поле мне нужно.
Последний раз редактировалось Sality 01 дек 2011, 11:40, всего редактировалось 1 раз.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: TextField

Сообщение waruiyume 01 дек 2011, 11:39

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class TfFocus : MonoBehaviour
{
    private string tfSrting = "";

    private delegate void Gb();


    Gb curGui;


        // Use this for initialization
        void Start ()
    {
            curGui = new Gb(StartGui);
        }
       
        // Update is called once per frame
        void OnGUI ()
        {
            curGui();
        }


    void StartGui()
    {
        GUI.SetNextControlName("sf");
        tfSrting = GUI.TextField(new Rect(10, 10, 100, 100), tfSrting);
        GUI.FocusControl("sf");
        curGui = new Gb(UpdGui);
    }

    void UpdGui()
    {
        tfSrting = GUI.TextField(new Rect(10, 10, 100, 100), tfSrting);
    }
}
 
Аватара пользователя
waruiyume
Адепт
 
Сообщения: 6143
Зарегистрирован: 30 окт 2010, 05:03
Откуда: Ростов на Дону

Re: TextField

Сообщение IDoNotExist 01 дек 2011, 12:08

Sality писал(а):Я так понял у унити гуи хромает, если они сделали кастрированый textField().

Вы в корне ошибаетесь, textField() работает, если он не работает у только у вас, видимо это мировой заговор вы его не правильно используете.
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: TextField

Сообщение Sality 01 дек 2011, 12:11

Поэтому я у вас и спрашиваю обьяснить что я не так делаю.
Потому что я все сделал как сказано в доках, создал TextField(). Запустил Прогу и что я вижу, моргающий на меня курсор, не на что не реагирующий. В чем была моя ошибка? Ах.. да... с бубном я не прыгал) :))
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: TextField

Сообщение IDoNotExist 01 дек 2011, 12:17

Sality писал(а):Поэтому я у вас и спрашиваю обьяснить что я не так делаю.
Потому что я все сделал как сказано в доках, создал TextField(). Запустил Прогу и что я вижу, моргающий на меня курсор, не на что не реагирующий. В чем была моя ошибка? Ах.. да... с бубном я не прыгал) :))

Давайте по порядку:
1) создаете пустую сцену,
2) Создаете в ней пустой GO (можно не создавать и повесить скрипт прямо на камеру),
3) вешаете на него следующий скрипт:

Kann писал(а):
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public string stringToEdit = "Hello World";
    void OnGUI() {
        stringToEdit = GUI.TextField(new Rect(10, 10, 200, 20), stringToEdit, 25);
    }
}


4)нажимаете Play
Profit!
Аватара пользователя
IDoNotExist
Адепт
 
Сообщения: 1432
Зарегистрирован: 23 мар 2011, 09:18
Skype: iamnoexist

Re: TextField

Сообщение Sality 01 дек 2011, 12:26

Вечером напишу результат. Но вчера у меня просто висел в такой постановке слово Hello world.
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

След.

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

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

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