Input Buffer

Each InputNexus can temporarily suspend events to InputLinks that enable input buffering.

Buffers are separated by InputBufferChannels, which is a TMap of gameplay tags and InputLinks. When the channel is opened, this buffer is populated by any links that attempted to be activated but were stopped, while also storing the last action value.

When the channel is closed, the InputLinks will act as if the player just pressed the button, but using the last stored action value that was used.

  • Keep in mind, this is not a queue system. Only the last input event will be repeated.

To open a buffer channel, call OpenInputBufferChannel, then to close it, you call CloseInputBufferChannnel.

Inputs are buffered inside UInputLinkBufferInput. If you wish to override or customize how a link handles buffering, override this function.

Once the channel is closed, all the inputs are released like so:

Do note, this follows the same code execution as when an input is pressed, as in, checking if it's enabled, can handle the input and consumption

To cancel an InputLink's buffered input, call FlushBufferedInput

Animation based buffering

InputNexus provides an animation notify state that allows you to open and close a input buffer channel

When it starts, the buffer channel is opened. When it ends, the buffer channel is closed.

Last updated