подсказчик: Как вы можете написать сценарий контроллера от первого лица в GDscript и применить его к узлу KinematicBody при использовании Godot Engine 3.x и что эквивалентно узлу KinematicBody в Godot Engine 4.x и как работает вид от первого лица скрипт контроллера нужно изменить для работы в Godot Engine 4.x?
Вот пример сценария контроллера от первого лица в GDscript для Godot Engine 3.x, примененного к узлу KinematicBody:
расширяет KinematicBody

переменная скорость = 5
вар гравитация = 9,8
переменная скорость_прыжка = 8

функция _physics_process(дельта):
    переменная скорость = Vector3()

    если is_on_floor():
        скорость.y = -гравитация
    если Input.is_action_pressed("ui_up"):
        скорость.z -= скорость
    если Input.is_action_pressed("ui_down"):
        скорость.z += скорость
    если Input.is_action_pressed("ui_left"):
        скорость.x -= скорость
    если Input.is_action_pressed("ui_right"):
        скорость.x += скорость
    если Input.is_action_just_pressed("прыжок") и is_on_floor():
        скорость.y = скорость_прыжка

    move_and_slide (скорость)

В Godot Engine 4.x эквивалентным узлом KinematicBody является RigidBody. Эквивалентный скрипт контроллера от первого лица будет выглядеть так:

расширяет жесткое тело

переменная скорость = 5
вар гравитация = 9,8
переменная скорость_прыжка = 8

функция _physics_process(дельта):
    переменная скорость = Vector3()

    если is_on_floor():
        скорость.y = -гравитация
    если Input.is_action_pressed("ui_up"):
        скорость.z -= скорость
    если Input.is_action_pressed("ui_down"):
        скорость.z += скорость
    если Input.is_action_pressed("ui_left"):
        скорость.x -= скорость
    если Input.is_action_pressed("ui_right"):
        скорость.x += скорость
    если Input.is_action_just_pressed("прыжок") и is_on_floor():
        скорость.y = скорость_прыжка

    move_and_slide (скорость)

Обратите внимание, что в этом примере использование move_and_slide() заменено на apply_impulse(), чтобы применить изменения скорости к твердому телу.
Вы можете создать узел для опроса всех входных данных управления и сохранить их в общедоступных переменных или массивах. Создайте ссылки на эти входные события, которые запускают функции анимации.