Navigation
API > API/Plugins > API/Plugins/InstancedActors
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- USubsystem
- UWorldSubsystem
- UTickableWorldSubsystem
- UInstancedActorsSubsystem
References
| Module | InstancedActors |
| Header | /Engine/Plugins/Runtime/InstancedActors/Source/InstancedActors/Public/InstancedActorsSubsystem.h |
| Include | #include "InstancedActorsSubsystem.h" |
Syntax
UCLASS (MinimalAPI, BlueprintType)
class UInstancedActorsSubsystem : public UTickableWorldSubsystem
Remarks
Instanced Actor subsystem used to spawn AInstancedActorsManager's and populate their instance data. It also keeps track of all InstancedActorDatas and can be queried for them
Variables
| Type | Name | Description | |
|---|---|---|---|
| TObjectPtr< UActorPartitionSubsystem > | ActorPartitionSubsystem | ||
| TObjectPtr< const UDataRegistrySubsystem > | DataRegistrySubsystem | ||
| TArray< FInstancedActorsInstanceHandle > | DirtyRepresentationInstances | Instances whose representation is explicitly dirty, e.g: due to actor spawn / despawn replication, requiring immediate representation processing even out of 'detailed' representation processing range. | |
| TSharedPtr< FMassEntityManager > | EntityManager | ||
| TMap< TObjectKey< const UClass >, TWeakPtr< UE::InstancedActors::FExemplarActorData > > | ExemplarActors | Lazily created exemplar actors for instance actor classes | |
| TObjectPtr< UWorld > | ExemplarActorWorld | Inactive UWorld housing lazily create exemplar actors for instance actor classes | |
| TSubclassOf< AInstancedActorsManager > | InstancedActorsManagerClass | ||
| TSparseArray< TWeakObjectPtr< AInstancedActorsManager > > | Managers | Spatially indexed managers. | |
| FManagersHashGridType | ManagersHashGrid | ||
| TSparseArray< TWeakObjectPtr< UInstancedActorsModifierVolumeComponent > > | ModifierVolumes | Spatially indexed modifier volumes. TSparseArray used for stable indices which can be spatially indexed by THierarchicalHashGrid2D. | |
| FModifierVolumesHashGridType | ModifierVolumesHashGrid | ||
| TArray< FInstancedActorsManagerHandle > | PendingManagersToSpawnEntities | FIFO queue of Managers pending deferred entity spawning in Tick. Enqueued in RequestDeferredSpawnEntities. | |
| TMap< TWeakObjectPtr< UClass >, FSharedStruct > | PerActorClassSettings | Cached finalized / flattened FInstancedActorsClassSettingsBase for GetOrCompileSettingsForActorClass requested ActorClass. | |
| TObjectPtr< const UInstancedActorsProjectSettings > | ProjectSettings | ||
| TObjectPtr< const UScriptStruct > | SettingsType | ||
| TArray< FNextTickSharedFragment > | SortedSharedFragments | The container storing a sorted queue of FSharedStruct instances, ordered by the NextTickTime |
Constructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| FInstancedActorsManagerHandle | AddManager
(
AInstancedActorsManager& Manager |
||
| FInstancedActorsModifierVolumeHandle | AddModifierVolume
(
UInstancedActorsModifierVolumeComponent& ModifierVolume |
||
| bool | CancelDeferredSpawnEntitiesRequest
(
FInstancedActorsManagerHandle ManagerHandle |
Removes ManagerHandle from PendingManagersToSpawnEntities if present | |
| FSharedStruct | CompileSettingsForActorClass
(
TSubclassOf< AActor > ActorClass |
Called in GetOrCompileSettingsForActorClass to compile finalized settings for ActorClass based off FInstancedActorsClassSettingsBase found in UInstancedActorsProjectSettings::ActorClassSettingsRegistryType data registry, for ActorClass and it's inherited super classes. | |
| FInstancedActorsVisualizationDesc | CreateVisualDescriptionFromActor
(
const AActor& ExemplarActor |
||
| bool | DoesActorClassHaveRegisteredSettings
(
TSubclassOf< AActor > ActorClass, |
Returns true if ActorClass has a matching FInstancedActorsClassSettingsBase entry in UInstancedActorsProjectSettings::ActorClassSettingsRegistryType data registry. | |
| bool | ExecutePendingDeferredSpawnEntitiesRequests
(
double StopAfterSeconds |
Calls AInstancedActorsManager::InitializeModifyAndSpawnEntities for all pending managers in PendingManagersToSpawnEntities added via RequestDeferredSpawnEntities. | |
| void | ForEachInstance
(
const FBox& QueryBounds, |
||
| void | ForEachManager
(
const FBox& QueryBounds, |
||
| void | ForEachModifierVolume
(
const FBox& QueryBounds, |
||
| UInstancedActorsSubsystem * | |||
| UInstancedActorsSubsystem & | GetChecked
(
UObject* WorldContextObject |
||
| TSubclassOf< AInstancedActorsManager > | |||
| FSharedStruct | GetOrCompileSettingsForActorClass
(
TSubclassOf< AActor > ActorClass |
Compiles and caches finalized settings for ActorClass based off FInstancedActorsClassSettingsBase found in UInstancedActorsProjectSettings::ActorClassSettingsRegistryType data registry, for ActorClass and it's inherited super classes. | |
| TSharedRef< UE::InstancedActors::FExemplarActorData > | GetOrCreateExemplarActor
(
TSubclassOf< AActor > ActorClass |
Retrieves existing or spawns a new ActorClass for introspecting exemplary instance data. | |
| TArray< UInstancedActorsSubsystem::FNextTickSharedFragment > & | |||
| void | HandleRefreshSettings
(
IConsoleVariable* InCVar |
||
| bool | HasInstancesOfClass
(
const FBox& QueryBounds, |
Checks whether there are any instanced actors representing ActorClass or its subclasses inside QueryBounds. | |
| bool | Return true if any deferred spawn entities requests are pending execution by the next ExecutePendingDeferredSpawnEntitiesRequests | ||
| FInstancedActorsInstanceHandle | InstanceActor
(
TSubclassOf< AActor > ActorClass, |
Adds an instance of ActorClass at InstanceTransform location by spawning or reusing a AInstancedActorsManager at InstanceTransform's grid cell location. | |
| FInstancedActorsInstanceHandle | InstanceActor
(
TSubclassOf< AActor > ActorClass, |
Adds an instance of ActorClass at InstanceTransform location by spawning or reusing a AInstancedActorsManager at InstanceTransform's grid cell location. | |
| void | MarkInstanceRepresentationDirty
(
FInstancedActorsInstanceHandle InstanceHandle |
Adds InstanceHandle to a list of pending instances that require an explicit representation update e.g: to remove/add ISMCs when a replicated actor is spawned / despawned. | |
| void | PopAllDirtyRepresentationInstances
(
TArray< FInstancedActorsInstanceHandle >& OutInstances |
Copies the current list of instances requiring explicit representation updates (added via MarkInstanceRepresentationDirty) to OutInstances and clears the internal list. | |
| bool | RegisterNewSharedFragmentsInternal
(
TConstStructView< FInstancedActorsDataSharedFragment > InstancedActorsDataSharedFragment |
Fetches all registered FInstancedActorsDataSharedFragment from the EntityManager and adds the missing ones to SortedSharedFragments | |
| bool | RemoveActorInstance
(
const FInstancedActorsInstanceHandle& InstanceHandle, |
Removes all instance data for InstanceHandle. | |
| void | RemoveManager
(
FInstancedActorsManagerHandle ManagerHandle |
||
| void | RemoveModifierVolume
(
FInstancedActorsModifierVolumeHandle ModifierVolumeHandle |
||
| void | RequestDeferredSpawnEntities
(
FInstancedActorsManagerHandle ManagerHandle |
Adds ManagerHandle to PendingManagersToSpawnEntities for later processing in Tick -> ExecutePendingDeferredSpawnEntitiesRequests | |
| void | UnregisterExemplarActorClass
(
TSubclassOf< AActor > ActorClass |
Removes exemplar actor class from the map | |
| void | UpdateAndResetTickTime
(
TConstStructView< FInstancedActorsDataSharedFragment > InstancedActorsDataSharedFragment |
Overridden from USubsystem
| Type | Name | Description | |
|---|---|---|---|
| void | Deinitialize () |
Implement this for deinitialization of instances of the system | |
| void | Initialize
(
FSubsystemCollectionBase& Collection |
USubsystem implementation Begin. | |
| bool | ShouldCreateSubsystem
(
UObject* Outer |
Override to control if the Subsystem should be created at all. |
Overridden from FTickableObjectBase
| Type | Name | Description | |
|---|---|---|---|
| TStatId | GetStatId () |
Return the stat id used to track the performance of this object | |
| void | Tick
(
float DeltaTime |
Pure virtual that must be overloaded by the inheriting class. |
Classes
| Type | Name | Description | |
|---|---|---|---|
| FNextTickSharedFragment |
Typedefs
| Name | Description |
|---|---|
| FManagersHashGridType | |
| FModifierVolumesHashGridType |