Unity: Игнорировать нажатие левой кнопки мыши

Если в игре используется мышка, при этом левая кнопка мыши назначена на Атаку, то при нажатии на кнопку интерфейса, герой начинает атаковать. Если кнопка интерфейса отвечает за атаку, то ничего страшного, но чаще всего это какая-то другая кнопка — вызов меню, открытие карты или окна инвентаря. В этом случае при нажатии левой кнопки мыши атаки быть не должно.
Чтобы игнорировать нажатие кнопки мыши, можно добавить в скрипт, где вызывается атака, несколько строчек для проверки. Если нажатие кнопки мыши было сделано поверх элемента UI (проверка с помощью IsPointerOverGameObject), то такое нажатие можно пропускать:

void Update()
{
    HandleAttackAnimations();
    if (!MouseLock.MouseLocked)
    {
        if (Input.GetButtonDown("Fire1"))
        {
            if (EventSystem.current.IsPointerOverGameObject())
            {
                return;
            }
            Attack();
        }
    }
    MovementAndJumping();
}


Подписаться
Уведомление о
guest
0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments