Navigation
API > API/Plugins > API/Plugins/Mover
Inheritance Hierarchy
- FLayeredMoveBase
- FLayeredMove_AnimRootMotion
- FLayeredMove_JumpImpulseOverDuration
- FLayeredMove_JumpTo
- FLayeredMove_Launch
- FLayeredMove_LinearVelocity
- FLayeredMove_MoveTo
- FLayeredMove_MoveToDynamic
- FLayeredMove_MultiJump
- FLayeredMove_RadialImpulse
- FLayeredMove_RootMotionAttribute
- FTestCustomLayeredMove
References
| Module | Mover |
| Header | /Engine/Plugins/Experimental/Mover/Source/Mover/Public/LayeredMove.h |
| Include | #include "LayeredMove.h" |
Syntax
USTRUCT (BlueprintInternalUseOnly)
struct FLayeredMoveBase
Remarks
Layered Moves are methods of affecting motion on a Mover-based actor, typically for a limited time. Common uses would be for jumping, dashing, blast forces, etc. They are ticked as part of the Mover simulation, and produce a proposed move. These proposed moves are aggregated and applied to the overall attempted move. Multiple layered moves can be active at any time, and may produce additive motion or motion that overrides what the current Movement Mode may intend. Layered moves can also set a preferred movement mode that only changes the movement mode at the start of the move. Any movement mode changes that need to happen as part of the layered move after the start of the move need to be queued through an Instant Effect or the QueueNextMode function
Variables
| Type | Name | Description | |
|---|---|---|---|
| float | DurationMs | This move will expire after a set amount of time if > 0. If 0, it will be ticked only once, regardless of time step. It will need to be manually ended if < 0. | |
| FLayeredMoveFinishVelocitySettings | FinishVelocitySettings | Settings related to velocity applied to the actor after a layered move has finished. | |
| EMoveMixMode | MixMode | Determines how this object's movement contribution should be mixed with others. | |
| uint8 | Priority | Determines if this layered move should take priority over other layered moves when different moves have conflicting overrides - higher numbers taking precedent. | |
| float | StartSimTimeMs | The simulation time this move first ticked (< 0 means it hasn't started yet) |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddReferencedObjects
(
FReferenceCollector& Collector |
||
| FLayeredMoveBase * | Clone () |
||
| void | EndMove
(
const UMoverComponent* MoverComp, |
Ends this move, allowing any cleanup to occur. | |
| bool | GenerateMove
(
const FMoverTickStartData& StartState, |
TODO: consider whether MoverComp should just be part of FMoverTickStartData Generate a movement that will be combined with other sources | |
| UScriptStruct * | |||
| bool | HasGameplayTag
(
FGameplayTag TagToFind, |
Check Layered Move for a gameplay tag. | |
| bool | IsFinished
(
float CurrentSimTimeMs |
Runtime query whether this move is finished and can be destroyed. The default implementation is based on DurationMs. | |
| void | NetSerialize
(
FArchive& Ar |
||
| void | OnEnd
(
const UMoverComponent* MoverComp, |
Called when this layered move ends. | |
| void | OnStart
(
const UMoverComponent* MoverComp, |
Called when this layered move starts. | |
| void | StartMove
(
const UMoverComponent* MoverComp, |
Kicks off this move, allowing any initialization to occur. | |
| FString |