Истребители багов: сбой полетного контроллера

Истребители багов: сбой полетного контроллера

Истребители багов: сбой полетного контроллера

Выпуск от 16 августа 2017г.

На тестовом уровне Марка находится Constellation, который не может летать. К сожалению, Марк сам повинен в появлении этого бага. Давайте разберемся, почему это произошло.

Некоторое время назад Марк реализовал возможность, чтобы двигатели продолжали работать, когда игрок встает с пилотского кресла. Так вы можете включить круиз-контроль и пойти прогуляться. Раньше этого сделать было нельзя, потому что функции включения двигателей и использования кресла были связаны. В системе Предметов 2.0 они разделены, так что вы можете встать с кресла, а корабль продолжит лететь вперед. К сожалению, из-за этого нововведения почти 90% кораблей "поломались". Марк тестировал новую функцию на трех кораблях: M50, Gladius и Cutlass, и эти три оказались рабочими, однако все остальные сломались.

Марк показывает код полетного контроллера. В иерархии присутствует корабль, у которого есть менеджер управления, которому, в свою очередь, назначено множество контроллеров. Когда вы берете управление этим конкретным полетным контроллером, он предоставляет вам контроль над двигателями, так что вы можете управлять кораблем. Марк внес некоторые изменения, которые позволяют вам продолжить лететь после покидания кресла пилота, но он забыл одну вещь.

При посаде в кресло игрок вызывает функцию Use, а при покидании кресла этот вызов удаляется. Когда игрок садится, там есть параметр - активировать/деактивировать обработчик действий. Его задача - выполнять определенные действия, когда игрок нажимает на кнопки. Марк забыл включить обработчик полетного контроллера, поэтому игрок никогда не получал контроль над движением корабля.

Он вернулся к коду обработчика и заново его активировал для полетного контроллера, а также добавил режим деактивации, если игрок встанет с кресла. После компиляции и загрузки тестовой сцены игра вылетела с ошибкой. Причина в том, что Марк добавил деактивацию контроллера, однако изначально он не был активирован - это привело к логическому противоречию и зависанию.

После второй попытки Марк загрузил сначала Cutlass, затем Constellation. Все заработало, корабль полетел. И теперь игрок может покинуть кресло, а корабль продолжит свой путь.

Admin administrator