Menu
CoddyTech

Управляйте клавишами

Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 5 из 67.

Input.GetKey(KeyCode.Space) возвращает true в каждом кадре, пока клавиша Space удерживается, и false в противном случае. Проверяй это в Update() и перемещай объект только тогда, когда проверка возвращает положительный результат, — так игрок управляет объектом.

Этот ящик поднимается со скоростью lift единиц в секунду, пока клавиша Space удерживается. Time.deltaTime обеспечивает скорость в единицах в секунду, как и в предыдущем уроке:

public float lift = 2f;

void Update()
{
    if (Input.GetKey(KeyCode.Space))
    {
        transform.position += new Vector3(0, lift * Time.deltaTime, 0);
    }
}

У каждой клавиши есть свой KeyCode: KeyCode.UpArrow, KeyCode.W, KeyCode.Return и так далее. Сначала щёлкни по окну игры, чтобы оно получало нажатия клавиш. Примечание для Unity 6: в новых проектах используется новая система ввода, и Input.GetKey выдаёт ошибку, пока для параметра Active Input Handling (Project Settings, Player) не задано значение Both.

challenge icon

Задание

Легко

Дай игроку управлять кубом: пока удерживается клавиша со стрелкой вправо, куб движется вправо (вдоль +x) со скоростью speed единиц в секунду, а пока удерживается клавиша со стрелкой влево — движется влево с той же скоростью. Если ни одна клавиша не удерживается, куб остаётся на месте.

Нажми Play, щёлкни по игровому окну и попробуй нажать клавиши со стрелками, затем нажми Check.

Попробуйте сами

using UnityEngine;

public class Steering : MonoBehaviour
{
    public float speed = 4f;

    void Update()
    {
        // Стрелка вправо: движение вправо. Стрелка влево: движение влево.
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы скриптинга в Unity