功能实现
说明:未落地时按跳跃键,可被记录,并且落地后起跳。
- 降落状态,并且无法二段跳时,开启缓冲输入。
- 从降落到落地之间只要一直按着空格,落地后会立马跳起。
- 中间松开就会关闭缓冲输入。
- 落地后关闭缓冲输入。
PlayerInput中添加变量public bool HasJumpInputBuffer { get; set; }
**onEnable()**函数中添加松开按键判定
private void OnEnable() |
PlayerState_Fall脚本中添加输入缓冲
if (input.playerjump) |
PlayerState_JumpUp脚本,**Enter()**中添加input.HasJumpInputBuffer = false;//关闭动作缓冲
PlayerState_Land,落地状态脚本,判定开启动作缓冲输入时也可跳跃
if (input.HasJumpInputBuffer || input.playerjump) |
限制缓冲输入时长
新建协程JumpInputBufferCoroutine,跳跃输入缓冲携程
IEnumerator JumpInputBufferCoroutine() |
该协程写进一个方法用以别的类调用
public void SetJumpInputBufferTimer() |
例如PlayerState_Fall状态中,将无限制缓冲输入时长改为长按0.5s失效
//若如果玩家不能二段跳,则开启动作预输入(输入缓冲) 携程 |