Фокус TextField

Программирование на Юнити.

Фокус TextField

Сообщение yataghan 18 окт 2010, 20:51

Добрый вечер,
суть задачи: запретить персонажу передвигаться, пока пользователь печатает сообщение в чат.
Подскажите, пожалуйста, как узнать, что текстовое поле оказалось в фокусе
Попытка сделать так
Синтаксис:
Используется javascript
var сontroller : ThirdPersonController = GetComponent(ThirdPersonController);
if (GUI.skin.GetStyle("TextField").focused)
        сontroller.enabled = false;
else
        сontroller.enabled = true;
 

оказалась неудачной
Последний раз редактировалось yataghan 02 дек 2010, 23:19, всего редактировалось 1 раз.
yataghan
UNец
 
Сообщения: 7
Зарегистрирован: 18 окт 2010, 20:30
Откуда: Москва
  • ICQ

Re: Фокус TextField

Сообщение foonk 19 окт 2010, 07:27

Ну например так:
Синтаксис:
Используется javascript
function OnGUI ()
{
    //при нажатии Enter фокуссируем окно чата
    if (Input.GetKeyDown(KeyCode.Return)) {
        usingChat = true;
        GUI.FocusControl("Chat input field");
    }
...


И в плеер контроллере просто проверяете, если usingChat = true; то отключаете управление персонажем например так:
Синтаксис:
Используется javascript
function Update() {
var chat = FindObjectOfType (Chat);
var usingChat : boolean = chat.usingChat;
if (usingChat==true) getUserInput=false;
else getUserInput=true;
— 2010-й год. В Ладу Калину поставили первый Глонасс-приемник размером с утюг. В то же время Эппл выпускает плеер размером меньше спичечного коробка с цветным дисплеем и тачскрином.
Добавить foonk09 в Skype
Аватара пользователя
foonk
UNITрон
 
Сообщения: 302
Зарегистрирован: 16 май 2009, 20:25
Откуда: Москва
  • ICQ

Re: Фокус TextField

Сообщение yataghan 19 окт 2010, 14:51

Но таким способом, улавливается фокус только при нажатии на Enter, хотя на самом деле текстовое поле по умолчанию оказывается активным и при щелчке левой кнопкой мыши. И каким способом определяется потеря элементом фокуса? Есть ли какая-нибудь функция, например element.onfocus/element.onblur, которая сообщала бы, в фокусе элемент или нет?
или можно только проделать все вручную: узнать координаты мыши в момент щелчка, сравнить с координатами текстового поля, установить значение переменной usingChat = true?
yataghan
UNец
 
Сообщения: 7
Зарегистрирован: 18 окт 2010, 20:30
Откуда: Москва
  • ICQ

Re: Фокус TextField

Сообщение foonk 19 окт 2010, 15:33

В моем примере да, чат включается и отключается управление персонажем ентером, а выключается чат и вновь включается управление при нажатии ескейпа. "Есть ли какая-нибудь функция, например element.onfocus/element.onblur, которая сообщала бы, в фокусе элемент или нет?" Такой не находил.
— 2010-й год. В Ладу Калину поставили первый Глонасс-приемник размером с утюг. В то же время Эппл выпускает плеер размером меньше спичечного коробка с цветным дисплеем и тачскрином.
Добавить foonk09 в Skype
Аватара пользователя
foonk
UNITрон
 
Сообщения: 302
Зарегистрирован: 16 май 2009, 20:25
Откуда: Москва
  • ICQ

Re: Фокус TextField

Сообщение yataghan 19 окт 2010, 15:42

Спасибо
yataghan
UNец
 
Сообщения: 7
Зарегистрирован: 18 окт 2010, 20:30
Откуда: Москва
  • ICQ


Вернуться в Скрипты

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11