ui которые реагирует на клик. Возможно ли сделать написать такую логику, что сначала проверяются некоторые условия, а потом пропускается клик дальше или идет блокировка (обнуление) инпута?
Это должно работать глобально, не логика на конкретной кнопке
ну повесь поверх всего панель на весь экран, которая не пропускает рейкаст и отключай её когда всё ок
Любой инпут, не только клики. Ui был для примера
новая система инпута?
Вот в том и проблема, но она не везде в проекте используется) ладно, специфичная задача, буду думать
а почему бы не сделать логику на каждой кнопке? Просто, и работает. Kiss
Это просто с точки зрения "придумать решение". А с точки зрение реализации это не кисс, а двушечка в голову будет)
Ну вот обнуление нажатия на кнопку вроде как можно было сделать через это https://docs.unity3d.com/ScriptReference/Input.ResetInputAxes.html А там уже можно наверное как-то через графикрейкастер смотреть куда мы жмем и отменять если надо
засунь все кнопки в пул пробегайся по ним вырубай raycast, если логика не позволяет их жать, либо совсем убирай, я бы ui гасил со всеми кнопками, зачем им зря отрисовываться каждый раз по фейковому нажатию, и не надо трогать другие классы, если нужно все же, чтобы как-то было визуальное прожатие, то только сверху кинуть кнопку фейковую, у которой color в нормальном состоянии по альфа 0, в pressed альфа 100 например, selected альфа 0 и она будет перекрывать рейкаст, и мигать цветом типо сорян бро щас я не работаю, но с фейковыми также придётся из пула управлять
Опять-таки, вопрос в любом инпуте, а не только в кнопках и их триггеру на ввод клика. Ладно, я по-другому к этой задаче подошёл, уже неважно) Спасибо за варианты
Сделать класс контроллер, который обрабатывает нажатия кнопок. UI (или нажатие клавиши) вызывает метод в контроллере. А контроллер передает вызов далее в нужный метод в зависимости от своего состояния. Например, клавиша ESC во время игры вызывает меню, а во время подбора предмета закрывает окно инвентаря (а остальные клавиши в этом состоянии вообще блокируются). Итог: подменяем состояния контроллера - полностью меняем логику обработки всех клавиш.
ну так хоть расскажи
это нужно было для туториала, чтобы блокать ввод на всё, кроме нужных кнопок +есть хоткеи, которые тоже нужно блокать. Хоткеи решил вырубать по стейту, примерно как Askalot сверху написал, а блокать ввод буду генерить меш с пробелами в нужных местах, который и будет блочить рейкасты кроме нужных мест
Обсуждают сегодня