с помощью паттерна State. Нужно добавить кнопку, которая будет менять состояние со Standing на Crouch и наоборот (в состояниях, отличных от них, кнопка должна быть скрыта).
Как можно сделать это без колхоза с кучей зависимостей?
StateMachine, реализовать 2 отдельных поведения игры, одно с данной кнопкой, второе без. Переключать нужной кнопкой. (если я правильно понял вопрос)
Сильно зависит от предпочитаемой архитектуры, я обычно все строю от Input (входящая точка) до View (отображение результата). С логикой в промежутке.
Я вижу это так: В скрипте, висящем на игроке, есть ссылка на кнопку. Эту ссылку (по возможности) получают в методе EnterState() нужные состояния и отображают всё необходимое при переходах. При нажатии кнопки инвокается UnityEvent и вызывается подписанный на него метод из текущего состояния (он осуществит переход) Выходит всего одна зависимость между игроком и кнопкой. Не сильно бредово выходит?
В моем понимании кнопка (она-же Input) вяжется к состоянию (в котором она есть), и к обработчику ее логики (функционал самой кнопки). Если состояние меняется, кнопка отключается, так как обработчик логики не получает входных, он тоже в отключке. При смене состояния обратно, кнопка работает. — Лучше уточни в Architectural, там точнее подскажут.
С другой стороны, если так подумать, у меня не особо большой проект намечается, так что городить какую-то особую архитектуру вокруг этого будет охотой с базукой на кролика - результат может и гарантирован, но какой ценой?
Обсуждают сегодня