Navigation
API > API/Plugins > API/Plugins/ScriptableToolsFramework > API/Plugins/ScriptableToolsFramework/UScriptableModularBehaviorTool
Description
MultiClickSequenceBehavior implements a generic multi-click-sequence input behavior. For example this behavior could be used to implement a multi-click polygon-drawing interaction.
The internal state machine works as follows: 1) on input-device-button-press, check if target wants to begin sequence. If so, begin capture. 2) on button release, check if target wants to continue or terminate sequence a) if terminate, release capture b) if continue, do nothing (capture continues between presses)
The target will receive "preview" notifications (basically hover) during updates where there is not a release. This can be used to (eg) update a rubber-band selection end point
| Name | AddMultiClickSequenceBehavior |
| Type | function |
| Header File | /Engine/Plugins/Runtime/ScriptableToolsFramework/Source/ScriptableToolsFramework/Public/BaseTools/ScriptableModularBehaviorTool.h |
| Include Path | #include "BaseTools/ScriptableModularBehaviorTool.h" |
| Source | /Engine/Plugins/Runtime/ScriptableToolsFramework/Source/ScriptableToolsFramework/Private/BaseTools/ScriptableModularBehaviorTool.cpp |
UFUNCTION (BlueprintCallable, Category="ScriptableTool|Input",
Meta=(AdvancedDisplay="CaptureCheck, HoverCaptureCheck, CapturePriority, MouseButton"))
void AddMultiClickSequenceBehavior
(
FOnBeginSequencePreviewDelegate OnBeginSequencePreview,
FCanBeginClickSequenceDelegate CanBeginClickSequence,
FOnBeginClickSequenceDelegate OnBeginClickSequence,
FOnNextSequencePreviewDelegate OnNextSequencePreview,
FOnNextSequenceClickDelegate OnNextSequenceClick,
FOnTerminateClickSequenceDelegate OnTerminateClickSequence,
FRequestAbortClickSequenceDelegate RequestAbortClickSequence,
FMouseBehaviorModiferCheckDelegate CaptureCheck,
const FMouseBehaviorModiferCheckDelegate HoverCaptureCheck,
int CapturePriority,
EScriptableToolMouseButton MouseButton
)
Parameters
| Name | Remarks |
|---|---|
| OnBeginSequencePreview | Notify Target device position has changed but a click sequence hasn't begun yet (eg for interactive previews) |
| CanBeginClickSequence | Test if target would like to begin sequence based on this click. Gets checked both on mouse down and mouse up. |
| OnBeginClickSequence | Notify Target about the first click in the sequence. |
| OnNextSequencePreview | Notify Target device position has changed but a click hasn't occurred yet (eg for interactive previews) |
| OnNextSequenceClick | Notify Target about next click in sqeuence, returns false to terminate sequence |
| OnTerminateClickSequence | Notify Target that click sequence has been explicitly terminated (eg by escape key, cancel tool, etc). |
| RequestAbortClickSequence | Target overrides this and returns true if it wants to abort click sequence, checked every update |
| CaptureCheck | Only enable capture if returns true |
| HoverCaptureCheck | Only enable hover capture if returns true |
| CapturePriority | The priority is used to resolve situations where multiple behaviors want the same capture |
| MouseButton | Determines which mouse button the behavior captures on |