В этом языке не разбираюсь, но обычно в этом случае, пишут отдельные методы для прибавления по отдельным осям(в случае нажатия кнопок), которые выдают единичные векторы. Эти векторы передаются в скрипт движения , в котором их складывают, результат делают единичным и его умножают на скорость.
То-есть все движение прописывается не в реакции нажатия на кнопки, а в отдельном методе, который принимает данные с методов нажатия, по итогу разные методы друг с другом не спорят.
Кстати, подумай, что произойдёт, если игрок нажмёт вперёд и назад одновременно, или в полёте вообще ничего жать не будет и тд...