Именованные кнопки
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 21 из 85.
Помимо клавиш, в Unity есть кнопки: имена, перечисленные в Input Manager (Edit, Project Settings, Input Manager), каждое из которых связано с одной или несколькими клавишами. Input.GetButtonDown("Fire1") проверяет имя, а не клавишу. В новом проекте есть такие кнопки:
"Jump": пробел"Fire1": левый Ctrl или левая кнопка мыши"Fire2": левый Alt или правая кнопка мыши"Submit"и"Cancel": Enter и Escape
Кнопки геймпада связаны с теми же именами, а клавиши можно изменить в Input Manager, не трогая код. GetButton, GetButtonDown и GetButtonUp работают так же, как GetKey, GetKeyDown и GetKeyUp. Этот бластер записывает выстрел при каждом нажатии Ctrl или щелчке мышью:
void Update()
{
if (Input.GetButtonDown("Fire1"))
{
Debug.Log("Shot!");
}
}Имя — это строка, поэтому код с опечаткой в имени скомпилируется. Unity ищет это имя при выполнении строки, и если кнопки с таким именем нет, Unity выдаёт исключение на каждом кадре: ArgumentException: Input Button Fier1 is not setup. Увидев это сообщение, сравни имя в коде со списком в Input Manager.
Задание
ЛегкоИсправь прыжок лягушки и заставь её снова приземлиться.
- Нажми «Играть»: в Console появится ошибка, связанная с кнопкой
"Jumpp". Замени её на"Jump". - Добавь второй
ifсInput.GetButtonUp("Jump"), который вычитаетnew Vector3(0, hop, 0)изtransform.position.
Нажми «Играть», удерживай пробел и отпусти его: лягушка подпрыгнет, а затем приземлится. После этого нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Hopper : MonoBehaviour
{
public float hop = 1.5f;
void Update()
{
if (Input.GetButtonDown("Jumpp"))
{
transform.position += new Vector3(0, hop, 0);
}
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity