Menu
CoddyTech

Кнопки мыши

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

У кнопок мыши есть три собственных метода, и они принимают номер кнопки: 0 — левая кнопка, 1 — правая, 2 — средняя.

  • Input.GetMouseButtonDown(0): левая кнопка была нажата в этом кадре.
  • Input.GetMouseButton(0): кнопка нажата прямо сейчас — в каждом кадре, пока вы удерживаете её.
  • Input.GetMouseButtonUp(0): кнопку отпустили в этом кадре.

Они работают так же, как методы для клавиш, а Input.GetMouseButtonDown(0) — это то же самое, что Input.GetKeyDown(KeyCode.Mouse0). Этот колокольчик звонит при каждом щелчке по игре:

public int rings = 0;

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        rings++;
        Debug.Log("Ding! " + rings);
    }
}

Засчитывается щелчок в любом месте игры, а не только по колокольчику: эти методы сообщают о нажатии кнопки, а не о том, что находится под указателем. Чтобы определить, по какому объекту щёлкнули, потребуется больше кода. На телефоне Unity сообщает о касании как о нажатии кнопки мыши 0, поэтому колокольчик звонит и при касаниях.

challenge icon

Задание

Легко

Каждый щелчок увеличивает куб, пока его размер не достигнет 2.

  1. В Update() напишите if с условием Input.GetMouseButtonDown(0) && transform.localScale.x < 2f.
  2. Внутри него прибавьте new Vector3(0.25f, 0.25f, 0.25f) к transform.localScale.

Нажмите «Играть» и щёлкните по игре четыре раза: куб увеличится вдвое и остановится. Затем нажмите «Проверить».

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

using UnityEngine;

public class Grower : MonoBehaviour
{
    void Update()
    {
        // При каждом щелчке: увеличивать размер на 0.25 по каждой оси, максимум до 2.
    }
}

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

Потренируйтесь самостоятельно: Песочница Unity