跳转至

输入缓冲与宽容窗口

如果项目需要“提前输入仍能在短时间内执行”或“状态刚刚失效后仍保留一个宽容窗口”这类手感规则,可以注册 GFInputAssistUtility。它的 API 会明确写出 bufferedgrace_window,避免和 GFInputMappingUtility.consume_action() 的“消费本帧刚触发动作”混淆。

var input_map := Gf.get_utility(GFInputMappingUtility) as GFInputMappingUtility
var input_assist := Gf.get_utility(GFInputAssistUtility) as GFInputAssistUtility

if input_map.consume_action(&"jump"):
    input_assist.buffer_action(&"jump", 0.15)

if can_jump_now and input_assist.consume_buffered_action(&"jump"):
    perform_jump()

input_assist.start_grace_window(&"grounded", 0.1)
if input_assist.is_grace_window_active(&"grounded"):
    # 项目层自行决定这个窗口能放宽哪些动作。
    pass

本地多人项目可以传入 player_index 让动作缓冲和宽容窗口按玩家隔离;全局输入辅助则继续使用默认的 -1