События нажатия кнопок

Всем доброго времени суток. Сегодня я буду рассматривать такую вещь как нажатия кнопок которые производят к событиям. Собственно разобраться в этой теме просто необходимо, ведь нам необходимо каким-либо образом взаимодействовать с миром который мы создаем. А происходит это как раз при помощи нажатий кнопок, нажатий кнопок мыши, клавиатуры, джойстика, либо иного манипулятора.

 

Здесь я буду как и в уроках которые делал ранее производить действия от простого к сложному. В начале нажатия на кнопки будут просто выводить в консоль какое-либо сообщение. То есть определенная кнопка будет выводить определенное сообщение в консоли Unity 3d, а мы эти события будем видеть. Запускаем Unity 3d и открываем скрипт с нашим персонажем, напомню что скрипт который создает нашего персонажа это скрипт Spawn, о нем я говорил ранее. Данный скрипт занимается тем что создает нашего персонажа и уничтожает его как он свалится ниже определенного уровня. Открываем скрипт и пишем:

Пример скрипта нажатия кнопок
Dante

 

Сохраняем скрипт Spawn и запускаем Unity 3d, для начала смотрим в консоли что происходит при нажатии назначенных кнопок. Я же в свою очередь кратко напишу что мы написали и что происходит при нажатии кнопок.

 

Итак, в написанном коде что такое ifвы должны знать из статьи Оператор условия if, Input это слушатель события. Ну к примеру:

 

Input.GetMouseButton(0)

 

Получает сообщение о нажатии кнопки, в данном случае о нажатии кнопки мыши. То есть Input обозначает ввод, а то что после точки это отдельная функция, после ввода вы увидите что их там очень много, этих функций. В нашем случае GetMouseButton значит что мы возвращаем нажатие кнопки мыши, причем не одноразовое нажатие, вроде нажали, а затем необходимо еще раз нажать для второго нажатия, а с обновлением этого нажатия каждый кадр. То есть каждый кадр мы получаем нажатие мышки пока её не отпустим.

 

Значений которые в скобках, есть три вида 0, 1, 2. Ноль это левая кнопка, один правая и два нажатие на колесико, то бишь средняя. Именно нажатие а не прокручивание.

 

Так же существуют функции:

 

GetMouseButtonDown

GetMouseButtonUp

 

У меня в скрипте есть только GetMouseButtonDown но в движке обе эти функции, если он у вас открыт можете посмотреть сами. Они означают только события только в момент нажатия кнопки и того когда кнопка отпускается. В частности GetMouseButtonDown обозначает что произойдет событие только когда вы нажмете на кнопку, и пока вы её не отпустите вы второй раз её не нажмете. GetMouseButtonUp же сработает, например вы нажали кнопку, события еще на происходит, а когда вы её отпустите то в консоль выведется наше сообщение. С кнопками клавиатуры точно так же. Что можно видеть в коде ниже.

 

GetKey

 

Обозначает нажатие клавиши клавиатуры, а в скобках указывается какое именно событие выведется. KeyCode это получить код клавиши. Попробуйте в общем сами. GetKeyDown и GetKeyUp работают так же как я только что описывал одиночное нажатие кнопки мыши выше.

 

В общем кто желает может поназначать различные кнопки. Посмотреть выводы этих кнопок в консоли Unity 3d и увидеть срабатывания кнопок. Надеюсь это было достаточно понятно, хочется верить что кто-то это читает и ему тоже понятно. Хотя не проверяя самому понять не получится, а может получится но как по мне проще раз самому сделать.

 

На сегодня наверно все, всем спасибо и читателям до новых статей.

События нажатия кнопок: 5 комментариев

  1. Привет не подскажешь по событиям нажатия кнопок UI? Т.е у меня на экране есть кнопки сделаны они на UI не могу сообразить как создать условие чтобы при нажатии на определенную кнопку запускалась определенная куротина

      1. Вообще, адекватные люди выкладывают код текстом, чтобы скопировать можно было. А ты дибил, да. А мне не нравится читать со скрина, и я уже нашёл в другом месте

        1. Малоуважаемый даун, мне абсолютно похрен с чего тебе там не нравится читать, и как ты догадался что это сделано для того чтобы код не копировали, а делать это при помощи кода лень. Иди в другое место, я в принципе здесь никого не ждал, эти записи делались для меня, а не для тебя. Если они кому интересны, хорошо, нет и фиг с вами ветра в спину, не нравится напиши сам и дрочи на написанное

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *