Проблемка с GetKeyUp

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

Проблемка с GetKeyUp

Сообщение VitaliyCh 08 окт 2011, 14:42

Здравствуйте! Input.GetKeyUp(KeyCode.X) в среде Unity обрабатывает клавишу "x" а после компиляции и запуска приложения клавиша не обрабатывается. Собирал под MacOS. Может кто-нибудь сталкивался с аналогичной проблемой?
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Проблемка с GetKeyUp

Сообщение bomberest 09 окт 2011, 13:21

Т.е. в редакторе работает, а после билда не работает, или что?
Основы Unity3D Свой 2D-движок Фильм для разработчиков Кастомизация едитора
Лекции игрового программирования
Skype: Andrewf56 | Steam: bomberest (-AnF-) | Vk: _https://vk.com/andrewshut
Аватара пользователя
bomberest
Старожил
 
Сообщения: 538
Зарегистрирован: 22 июн 2011, 14:38
Откуда: Минск
  • ICQ

Re: Проблемка с GetKeyUp

Сообщение Zaicheg 09 окт 2011, 13:38

Да, с маками такое распостранено. Само нажатие срабатывает (проверяется через Input.anyKeyDown), но код получается не тот. Причину не выяснял, проблему не решал.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Проблемка с GetKeyUp

Сообщение Neodrop 09 окт 2011, 13:53

Input проверяется в Update ?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Проблемка с GetKeyUp

Сообщение VitaliyCh 09 окт 2011, 15:55

Да, с маками такое распостранено. Само нажатие срабатывает (проверяется через Input.anyKeyDown), но код получается не тот. Причину не выяснял, проблему не решал.

Zaicheg за anyKeyDown спасибо. Посмотрю хоть, что за коды приходят.

Input проверяется в Update ?

Да проверка в Update на скрипте камеры висит.
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Проблемка с GetKeyUp

Сообщение VitaliyCh 09 окт 2011, 16:09

Input.anyKeyDown к сожалению не код клавиши возвращает, а булевое значение.
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Проблемка с GetKeyUp

Сообщение Neodrop 09 окт 2011, 16:09

Можно попробовать проверить не через Input а через Event в OnGUI
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Проблемка с GetKeyUp

Сообщение VitaliyCh 09 окт 2011, 16:55

Neodrop писал(а):Можно попробовать проверить не через Input а через Event в OnGUI

Neodrop cпасибо. В приведенном ниже коде получаю нажатие клавиш. Но мне кажется проверять стринги при нажатии на клавишу слишком расточительно. Пробовал вот так: e.keyCode == 167 выдает ошибку несоответствия типов переменных.
Синтаксис:
Используется csharp
        void OnGUI()
        {
            Event e = Event.current;
//        if (e.isKey)
//            print("Detected key code: " + e.keyCode);
                       
         if (e.keyCode.ToString() == "167")
            print("Pressed \"x\" key.");
       
         if (e.keyCode.ToString() == "166")
            print("Pressed \"z\" key.");
       
    }
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Проблемка с GetKeyUp

Сообщение Neodrop 09 окт 2011, 17:03

Я что-то не понял, при чём тут стринги?
Сравните KeyCode с KeyCode
Вроде так :

if (e.keyCode == KeyCode.X)
print("Pressed \"x\" key.");
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Проблемка с GetKeyUp

Сообщение VitaliyCh 09 окт 2011, 17:52

Neodrop писал(а):Я что-то не понял, при чём тут стринги?
Сравните KeyCode с KeyCode
Вроде так :

if (e.keyCode == KeyCode.X)
print("Pressed \"x\" key.");



Эта конструкция не ловит нажатие на клавишу "x" т.е. условие = false
Cделал небольшой тест: e.keyCode.ToString() == "167", а вот KeyCode.X.ToString() == "X"
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Проблемка с GetKeyUp

Сообщение Neodrop 10 окт 2011, 09:17

Эта конструкция не ловит нажатие на клавишу "x" т.е. условие = false
Cделал небольшой тест: e.keyCode.ToString() == "167", а вот KeyCode.X.ToString() == "X"


:-o Дайте мне стенку, шоб я ап неё убился. Вы мне мозг вывихнуть собрались?
Какое условие равно false? Почему?
Вы код, который я написал, в точности, без конвертаций и прочих извращений, вставить в программу пробовали ?
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Проблемка с GetKeyUp

Сообщение VitaliyCh 10 окт 2011, 09:33

Neodrop писал(а): :-o Дайте мне стенку, шоб я ап неё убился. Вы мне мозг вывихнуть собрались?
Какое условие равно false? Почему?
Вы код, который я написал, в точности, без конвертаций и прочих извращений, вставить в программу пробовали ?


В точности вставил вот этот код:
if (e.keyCode == KeyCode.X)
print("Pressed \"x\" key.");

Условие ложно, print не отрабатывает. Почему? Сам бы хотел знать. Очевидно из-за того что e.keyCode.ToString() выдает "167", а KeyCode.X.ToString() выдает "X".
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Проблемка с GetKeyUp

Сообщение Neodrop 10 окт 2011, 09:47

А что ж оно должно выдавать, если это enum ?
В первом вашем сравнении, вы получаете индекс перечисления (enum), во втором - имя константы. Тут всё совершенно кашерно.

http://msdn.microsoft.com/query/dev10.q ... 29&rd=true

А вот почему не ловит Х - это уже отдельный вопрос. Может быть даже в саппорт.
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Проблемка с GetKeyUp

Сообщение VitaliyCh 10 окт 2011, 10:05

Ясно, большое спасибо за участие :).
VitaliyCh
UNец
 
Сообщения: 44
Зарегистрирован: 02 май 2011, 20:29

Re: Проблемка с GetKeyUp

Сообщение Neodrop 10 окт 2011, 10:17

Стукните в личку вот к этому уважаемому камраду : discouraged_one (чтобы темы не плодить в разделе глюков). Ответ отпишите тут ;)
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

След.

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

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

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


cron