SuperAPI AI 工具集

bevy-character-movement

通用与其它

查看项目

更新于 10-16 06:16

技能介绍

用途:在 Bevy 0.20+ 应用里实现玩家或角色的离散步进移动(行走、跳跃手感、地面判定),重点是先确定 ECS 结构,而非提供求解器代码。土狼时间与跳跃缓冲属于设计说明,不是节点移植。

核心 ECS 结构:组件持有姿态与意图(position、velocity、jump-buffer 或 coyote 计时器作为数据,Rust struct 派生 Component)。资源持有全局时钟与调参(bevy::time 的 Time、Fixed、Virtual)。系统读取意图并写入速度或位置,注册在固定调度上,而非逐节点的物理回调。run_fixed_main_schedule 从虚拟时间运行 FixedMain,依赖顺序用 .chain() 串联。

建议用法:把移动系统放在 FixedUpdate,输入意图在 Update 采样,避免在 FixedUpdate 里直接读 ButtonInput::just_pressed,因为该调度可能一帧执行零次或多次,导致按键被丢弃或重复;由意图组件保留边沿,等待 FixedUpdate 消费。若物理技能写入 Grounded,需把 coyote 补充链接在该写入之后,使计时器在同一 tick 看到接触。

适用场景:自驱移动体、需要帧时间变化下保持稳定的步进、以 ECS 组件/资源表达土狼时间与跳跃缓冲。

限制:碰撞响应归属 bevy-physics-3d,本地 locomotion 仅管 FixedUpdate 上的 kinematic 数据(意图、速度、土狼时间、跳跃缓冲)。不得调用 move_and_slide、_physics_process 或 CharacterBody2D 等 Godot 类型,不得编造角色控制器或 shape-cast API,也不得由两个无序系统同时可变查询同一移动组件(除非用 .chain() 排序)。文档 URL 不要钉住 /0.20.0/。代码示例与具体参数以原文为准,此处不重复。