Navigation
API > API/Runtime > API/Runtime/Engine > API/Runtime/Engine/Subsystems
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- USubsystem
- UDynamicSubsystem
- UAudioEngineSubsystem
- UEngineSubsystem
- UActorDescContainerSubsystem
- UAudioWidgetSubsystem
- UCEClonerSubsystem
- UCEEffectorSubsystem
- UContentBundleEngineSubsystem
- UDataDrivenCVarEngineSubsystem
- UDMXPixelMappingSubsystem
- UExternalDataLayerEngineSubsystem
- UHLODEngineSubsystem
- UInputDeviceSubsystem
- UMeshPaintingSubsystem
- URemoteControlComponentsSubsystem
- USVGEngineSubsystem
- UGameInstanceSubsystem
- UReplaySubsystem
- UTargetingSubsystem
- ULocalPlayerSubsystem
- UVCamSubsystem
- UInputVCamSubsystem
- UWorldSubsystem
- UActorPartitionSubsystem
- UAvaSceneSubsystem
- UAvaSequencerSubsystem
- UAvaViewportDataSubsystem
- UDataLayerSubsystem
- UDisplayClusterWorldSubsystem
- UGameplayBehaviorSubsystem
- ULevelInstanceSubsystem
- ULevelStreamingProfilingSubsystem
- UNetworkPhysicsSystem
- UNetworkSubsystem
- UObjectTraceWorldSubsystem
- UPhysicsMoverManager
- USmartObjectSubsystem
- USmartObjectTestSubsystem
- UTickableWorldSubsystem
- UAutoDestroySubsystem
- UBuoyancySubsystem
- UInstancedActorsSubsystem
- UShallowWaterSubsystem
- UBasicShallowWaterSubsystem
- UWorldPartitionSubsystem
- UViewportStatsSubsystem
- UWorldPartitionHLODRuntimeSubsystem
References
| Module | Engine |
| Header | /Engine/Source/Runtime/Engine/Public/Subsystems/Subsystem.h |
| Include | #include "Subsystems/Subsystem.h" |
Syntax
UCLASS (Abstract, MinimalAPI)
class USubsystem : public UObject
Remarks
Subsystems are auto instanced classes that share the lifetime of certain engine constructs
Currently supported Subsystem lifetimes are: Engine -> inherit UEngineSubsystem Editor -> inherit UEditorSubsystem GameInstance -> inherit UGameInstanceSubsystem World -> inherit UWorldSubsystem LocalPlayer -> inherit ULocalPlayerSubsystem
Normal Example: class UMySystem : public UGameInstanceSubsystem Which can be accessed by: UGameInstance* GameInstance = ...; UMySystem* MySystem = GameInstance->GetSubsystem
or the following if you need protection from a null GameInstance UGameInstance* GameInstance = ...; UMyGameSubsystem* MySubsystem = UGameInstance::GetSubsystem
You can get also define interfaces that can have multiple implementations. Interface Example : MySystemInterface With 2 concrete derivative classes: MyA : public MySystemInterface MyB : public MySystemInterface
Which can be accessed by: UGameInstance* GameInstance = ...; const TArray
Constructors
| Type | Name | Description | |
|---|---|---|---|
USubsystem () |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | Deinitialize () |
Implement this for deinitialization of instances of the system | |
| void | Initialize
(
FSubsystemCollectionBase& Collection |
Implement this for initialization of instances of the system | |
| bool | ShouldCreateSubsystem
(
UObject* Outer |
Override to control if the Subsystem should be created at all. |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| int32 | GetFunctionCallspace
(
UFunction* Function, |
Overridden to check global network context |