#include <ComposableCameraResetPitchAction.h>
Inherits:
UComposableCameraActionBase
This action smoothly resets pitch to a target value. If the camera rotates to the target rotation or there is user input, the action will expire.
Public Attributes¶
| Return | Name | Description |
|---|---|---|
float |
Pitch |
|
class UInputAction * |
RotateAction |
|
UComposableCameraInterpolatorBase * |
Interpolator |
|
float |
InterpSpeed |
Pitch¶
float Pitch { 0.f }
RotateAction¶
class UInputAction * RotateAction { nullptr }
Interpolator¶
UComposableCameraInterpolatorBase * Interpolator { nullptr }
InterpSpeed¶
float InterpSpeed { 1.f }
Public Methods¶
| Return | Name | Description |
|---|---|---|
UComposableCameraResetPitchAction |
||
bool |
CanExecute_Implementation virtual |
|
void |
OnExecute_Implementation virtual |
UComposableCameraResetPitchAction¶
UComposableCameraResetPitchAction(const FObjectInitializer & ObjectInitializer)
CanExecute_Implementation¶
virtual
virtual bool CanExecute_Implementation(float DeltaTime, const FComposableCameraPose & CurrentCameraPose)
OnExecute_Implementation¶
virtual
virtual void OnExecute_Implementation(float DeltaTime, const FComposableCameraPose & CurrentCameraPose, FComposableCameraPose & OutCameraPose)
Private Attributes¶
| Return | Name | Description |
|---|---|---|
TWeakObjectPtr< class UEnhancedInputLocalPlayerSubsystem > |
CachedSubsystem |
Weak — UEnhancedInputLocalPlayerSubsystem is owned by the LocalPlayer, which is destroyed on PIE stop, controller swap, level-streaming-out, or kick. |
TWeakObjectPtr< class ULocalPlayer > |
CachedLocalPlayer |
Identity of the LocalPlayer the cached subsystem belongs to. Used by ResolveInputSubsystem to detect controller-swap-without- destruction and invalidate the subsystem cache before reading from the wrong player's input source. |
TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > |
Interp_T |
CachedSubsystem¶
TWeakObjectPtr< class UEnhancedInputLocalPlayerSubsystem > CachedSubsystem
Weak — UEnhancedInputLocalPlayerSubsystem is owned by the LocalPlayer, which is destroyed on PIE stop, controller swap, level-streaming-out, or kick.
CachedLocalPlayer¶
TWeakObjectPtr< class ULocalPlayer > CachedLocalPlayer
Identity of the LocalPlayer the cached subsystem belongs to. Used by ResolveInputSubsystem to detect controller-swap-without- destruction and invalidate the subsystem cache before reading from the wrong player's input source.
Interp_T¶
TUniquePtr< TCameraInterpolator< TValueTypeWrapper< double > > > Interp_T
Private Methods¶
| Return | Name | Description |
|---|---|---|
class UEnhancedInputLocalPlayerSubsystem * |
ResolveInputSubsystem |
Walk PCM → OwningPC → LocalPlayer with per-link IsValid, then reuse the cached subsystem only if its owning LocalPlayer matches the chain's current LocalPlayer. Returns nullptr on any chain null OR mismatch (after invalidating the stale cache). |
ResolveInputSubsystem¶
class UEnhancedInputLocalPlayerSubsystem * ResolveInputSubsystem()
Walk PCM → OwningPC → LocalPlayer with per-link IsValid, then reuse the cached subsystem only if its owning LocalPlayer matches the chain's current LocalPlayer. Returns nullptr on any chain null OR mismatch (after invalidating the stale cache).
Caching just the subsystem isn't enough: OwningPlayerController can be re-pointed (re-possess, AI takeover, splitscreen reshuffle) to a DIFFERENT LocalPlayer whose subsystem is a different live object. The previous LocalPlayer can stay alive (its subsystem still valid in isolation) — so a IsValid(CachedSubsystem) test alone passes against a stale-player cache and we'd keep reading the previous player's input source. The LocalPlayer comparison fixes that.