class_name StateManager extends Node func _ready(): Client.state = get_child(0) func _input(event: InputEvent) -> void: Client.state._state_input(event) func _unhandled_input(event: InputEvent) -> void: Client.state._state_unhandled_input(event) func set_state(state: Variant): if state is not State: state = get_node(state) Client.state._state_exit() Client.state = state Client.state._state_enter()