Navigation
API > API/Plugins > API/Plugins/ScriptableToolsFramework > API/Plugins/ScriptableToolsFramework/UScriptableModularBehaviorTool
Description
Implements a standard "button-click-drag"-style input behavior.
The state machine works as follows: 1) on input-device-button-press, call CanBeginClickDragSequence to determine if capture should begin 2) on input-device-move, call OnClickDrag 3) on input-device-button-release, call OnClickRelease
If a ForceEndCapture occurs we call OnTerminateDragSequence
| Name | AddClickDragBehavior |
| 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, CapturePriority, MouseButton, bUpdateModifiersDuringDrag"))
void AddClickDragBehavior
(
const FTestCanBeginClickDragSequenceDelegate CanBeginClickDragSequence,
const FOnClickPressDelegate OnClickPress,
const FOnClickDragDelegate OnClickDrag,
const FOnClickReleaseDelegate OnClickRelease,
const FOnTerminateDragSequenceDelegate OnTerminateDragSequence,
const FMouseBehaviorModiferCheckDelegate CaptureCheck,
int CapturePriority,
EScriptableToolMouseButton MouseButton,
bool bUpdateModifiersDuringDrag
)
Parameters
| Name | Remarks |
|---|---|
| CanBeginClickDragSequence | Test if target can begin click-drag interaction at this point |
| OnClickPress | Notify Target that click press occurred |
| OnClickDrag | Notify Target that input position has changed |
| OnClickRelease | Notify Target that click release occurred |
| OnTerminateDragSequence | Notify Target that click-drag sequence has been explicitly terminated (eg by escape key) |
| CaptureCheck | Only enable 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 |