![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <ScopedMovementUpdate.h>
Inheritance diagram for FScopedMovementUpdate:Public Types | |
| enum class | EHasMovedTransformOption { eTestTransform , eIgnoreTransform } |
| enum class | EOverlapState { eUseParent , eUnknown , eIncludesOverlaps , eForceUpdate } |
| typedef TArray< FHitResult, TInlineAllocator< 2 > > | TScopedBlockingHitArray |
| typedef TArray< FOverlapInfo, TInlineAllocator< 3 > > | TScopedOverlapInfoArray |
Protected Member Functions | |
| ENGINE_API TOptional< TOverlapArrayView > | GetOverlapsAtEnd (class UPrimitiveComponent &PrimComponent, TInlineOverlapInfoArray &OutEndOverlaps, bool bTransformChanged) const |
| ENGINE_API bool | SetWorldLocationAndRotation (FVector NewLocation, const FQuat &NewQuat, bool bNoPhysics, ETeleportType Teleport) |
Friends | |
| class | USceneComponent |
FScopedMovementUpdate creates a new movement scope, within which propagation of moves may be deferred until the end of the outermost scope that does not defer updates. Moves within this scope will avoid updates such as UpdateBounds(), OnUpdateTransform(), UpdatePhysicsVolume(), UpdateChildTransforms() etc until the move is committed (which happens when the last deferred scope goes out of context).
Note that non-deferred scopes are not allowed within outer scopes that defer updates, and any attempt to use one will change the inner scope to use deferred updates.
|
strong |
|
strong |
| FScopedMovementUpdate::FScopedMovementUpdate | ( | USceneComponent * | Component, |
| EScopedUpdate::Type | ScopeBehavior = EScopedUpdate::DeferredUpdates, |
||
| bool | bRequireOverlapsEventFlagToQueueOverlaps = true |
||
| ) |
| FScopedMovementUpdate::~FScopedMovementUpdate | ( | ) |
|
inline |
Add blocking hit that will get processed once the move is committed. This is intended for use only by SceneComponent and its derived classes.
| void FScopedMovementUpdate::AppendOverlapsAfterMove | ( | const TOverlapArrayView & | NewPendingOverlaps, |
| bool | bSweep, | ||
| bool | bIncludesOverlapsAtEnd | ||
| ) |
Add overlaps to the queued overlaps array. This is intended for use only by SceneComponent and its derived classes whenever movement is performed.
|
inline |
Force full overlap update once this scope finishes.
|
inline |
If not INDEX_NONE, overlaps at this index and beyond in PendingOverlaps are at the final destination
|
inline |
True if this scoped movement resulted in the component being moved
|
inline |
The initial transform when this scoped movement began.
|
inline |
Get the scope containing this scope. A scope only has an outer scope if they both defer updates.
|
protected |
Fills in the list of overlaps at the end location (in EndOverlaps). Returns pointer to the list, or null if it can't be computed.
|
inline |
The current overlap state of this scoped move.
|
inline |
The owning scene component this scoped movement is modifying.
|
inline |
Returns the list of pending blocking hits, which will be used for notifications once the move is committed.
|
inline |
Returns the pending overlaps within this scope.
|
inline |
The type of teleport which this scoped move should use to determine overlaps.
|
inline |
Returns whether movement has occurred at all during this scope, optionally checking if the transform is different (since changing scale does not go through a move). RevertMove() sets this back to false.
|
inline |
Returns true if there are pending overlaps queued in this scope.
|
inline |
Clear overlap state at current location, we don't know what it is.
|
inline |
Return true if deferring updates, false if updates are applied immediately.
|
inline |
Return true if this movement update should be deferred and applied later in the frame as part of a larger group of components.
| bool FScopedMovementUpdate::IsTransformDirty | ( | ) | const |
Returns true if the Component's transform differs from that at the start of the scoped update.
Keep current pending overlaps after a move but make note that there was movement (just a symmetric rotation).
|
inline |
Returns true if we require GetGenerateOverlapEvents() on both the moving object and the overlapped object to add them to the pending overlaps list. These flags will still be required when dispatching calls to UpdateOverlaps(), but this allows some custom processing of queued overlaps that would be otherwise missed along the way.
| void FScopedMovementUpdate::RevertMove | ( | ) |
Revert movement to the initial location of the Component at the start of the scoped update. Also clears pending overlaps and sets bHasMoved to false.
|
inline |
Registers that this move is a teleport
|
protected |
|
friend |
|
protected |
|
protected |
|
protected |
True when DeferredGroupUpdates is the type applied. See notes above.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |