Ещё раз повторю, что игрок переопределяет метод onUpdate и не вызывает родительский(
По поводу LocalVarible: я думал, что это локали внутри метода, а не поля класса
А какую проверку? Я не придумал более оптимального решения, чем это
Вызов скомпилированной лямбды занимает столько же, сколько и...