Navigation
API > API/Plugins > API/Plugins/InstancedActors
Instance data for all instances of a given AActor class. Provides 'stable' referral to instances by index via offline population of InstanceTransforms which is then consistently loaded on both client and server.
| Name | UInstancedActorsData |
| Type | class |
| Header File | /Engine/Plugins/Runtime/InstancedActors/Source/InstancedActors/Public/InstancedActorsData.h |
| Include Path | #include "InstancedActorsData.h" |
Syntax
UCLASS (MinimalAPI, DefaultToInstanced)
class UInstancedActorsData : public UObject
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UInstancedActorsData
Structs
| Name | Remarks |
|---|---|
| FSetReplicatedActorRequests |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ActorClass | TSubclassOf< AActor > | The fully realized actor type for these instances. | InstancedActorsData.h |
|
| AInstancedActorsManager | friend | InstancedActorsData.h | ||
| Bounds | FBox | Cumulative mesh bounds for all of InstanceTransfroms. | InstancedActorsData.h | |
| Entities | TArray< FMassEntityHandle > | Runtime spawned mass instances | InstancedActorsData.h |
|
| EntityTemplateID | FMassEntityTemplateID | The entity template to spawn Mass entities from | InstancedActorsData.h | |
| ID | uint16 | Identifying integer, unique within outer IAM, used for identifying matching persistence records Incrementally assigned in GetOrCreateActorInstanceData | InstancedActorsData.h |
|
| InstanceTransforms | TArray< FTransform > | Void UInstancedActorsData::AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector) | InstancedActorsData.h | |
| LowLODDrawDistance | float | Distance from where the lowest LOD will be rendered - auto computed from bounding box and screen size data stored in the StaticMesh or can be set via the settings. | InstancedActorsData.h | |
| MaxDrawDistance | float | Distance from where the object will be culled out - auto computed from bounding box radius or can be set per via the settings. | InstancedActorsData.h | |
| NumInstances | uint16 | InstanceTransforms.Num() cached in PostLoad so we can restore InstanceTransforms to this size in ResetInstanceData | InstancedActorsData.h |
|
| NumValidInstances | uint16 | InstanceTransforms.Num() - number of invalid transforms Note: This is only valid prior to Entity spawning when InstanceTransforms is also valid, after which, spawned entities may be later removed / culled at runtime, invalidating this number. | InstancedActorsData.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bCanHydrate | bool | InstancedActorsData.h | ||
| CachedSetReplicatedActorRequests | TArray< FSetReplicatedActorRequests > | InstancedActorsData.h | ||
| CombinedTags | FGameplayTagContainer | Result of combining AdditionalTags with class-based FInstancedActorsSettings::GameplayTags. | InstancedActorsData.h |
|
| EntityConfig | FMassEntityConfig | InstancedActorsData.h |
|
|
| ExemplarActorData | TSharedPtr< UE::InstancedActors::FExemplarActorData > | InstancedActorsData.h | ||
| InstanceDeltas | FInstancedActorsDeltaList | List of FInstancedActorsDelta's to apply to instances, replicated via fast array replication to clients. | InstancedActorsData.h |
|
| SharedInstancedActorDataStruct | TStructView< FInstancedActorsDataSharedFragment > | Represents the shared fragment registered with MassEntityManager, that points back to this UInstancedActorsData instance. | InstancedActorsData.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FInstancedActorsInstanceHandle AddInstance
(
const FTransform& Transform, |
Add's an instance of this actor type at Transform | InstancedActorsData.h | |
uint8 AddVisualization
(
FInstancedActorsVisualizationDesc& InOutVisualizationDesc |
Register additional / alternate VisualizationDesc for instances to switch to, creating ISMC's for each VisualizationDesc.InstancedMeshes | InstancedActorsData.h | |
uint8 AddVisualizationAsync
(
const FInstancedActorsSoftVisualizationDesc& SoftVisualizationDesc |
Register additional / alternate VisualizationDesc for instances to switch to, creating ISMC's for each VisualizationDesc.InstancedMeshes | InstancedActorsData.h | |
void ApplyInstanceDeltas () |
Called on both server and client to apply instance delta changes to mass entities On servers: Called by OnPersistentDataRestored after persistence record has deserialized the delta data On clients: Called by OnRep_InstanceDeltas when new delta data has replicated from the server | InstancedActorsData.h | |
void ApplyInstanceDeltas
(
TConstArrayView< int32 > InstanceDeltaIndices |
InstancedActorsData.h | ||
bool CanHydrate() |
INLINES. | InstancedActorsData.h | |
void ClearReplicatedActor
(
FInstancedActorsInstanceIndex Instance, |
Called in UInstancedActorsComponent::EndPlay on clients to clear / unset the current actor for Instance's mass entity. | InstancedActorsData.h | |
void Deinitialize() |
Called from the parent's AInstancedActorsManager::EndPlay. Can release the entity template and exemplar Actor from memory. | InstancedActorsData.h | |
void DespawnEntities
(
bool bIsSwitchingSubsystems |
Called early in AInstancedActorsManager::EndPlay to reconstruct cooked data state from runtime Mass entities as best we can, then despawn all Mass entities and reset any other runtime instance data | InstancedActorsData.h | |
void DestroyInstance
(
FInstancedActorsInstanceIndex InstanceToDestroy |
Authority: Permanently destroy InstanceToDestroy by adding it to the persistent DestroyedInstances list and deleting it's Mass entity (deleting any Mass-spawned actors in turn). | InstancedActorsData.h | |
virtual void EjectInstanceActor
(
FInstancedActorsInstanceIndex InstanceToEject, |
Authority: `Eject_ an instance by unlinking it's Actor from Mass, setting the actor to persist itself and then destroying the manager instance. | InstancedActorsData.h | |
void ForEachEditorPreviewISMC
(
TFunctionRef< bool(UInstancedStaticMeshComponent&)> InFunction |
Iterates all ISMCs created in GetOrCreateActorInstanceData. | InstancedActorsData.h | |
void ForEachVisualization
(
TFunctionRef< bool(uint8, const FInstancedActorsVisualizationInfo&)> InFunction, |
Iterates all currently 'allocated' visualizations previously added with AddVisualization or AddVisualizationAsync | InstancedActorsData.h | |
const FInstancedActorsTagSet & GetAdditionalTags() |
InstancedActorsData.h | ||
EInstancedActorsBulkLOD GetBulkLOD() |
InstancedActorsData.h | ||
const FBox & GetCachedLocalBounds() |
InstancedActorsData.h | ||
const FGameplayTagContainer & GetCombinedTags() |
InstancedActorsData.h | ||
FString GetDebugName
(
bool bCompact |
Returns a string useful for identifying this instance data object withing it's owning manager | InstancedActorsData.h | |
const FInstancedActorsVisualizationInfo & GetDefaultVisualizationChecked() |
Returns the default visualization auto-created in BeginPlay from ActorClass and used by default for all spawned entities in BeginPlay. | InstancedActorsData.h | |
FMassEntityHandle GetEntity
(
FInstancedActorsInstanceIndex InstanceIndex |
InstancedActorsData.h | ||
FMassEntityHandle GetEntityHandleForIndex
(
const FInstancedActorsInstanceIndex Index |
InstancedActorsData.h | ||
int32 GetEntityIndexFromCollisionIndex
(
const UInstancedStaticMeshComponent& ISMComponent, |
InstancedActorsData.h | ||
int32 GetInstanceDataID() |
InstancedActorsData.h | ||
const FInstancedActorsDeltaList & GetInstanceDeltaList() |
InstancedActorsData.h | ||
FInstancedActorsInstanceIndex GetInstanceIndexForEntity
(
const FMassEntityHandle EntityHandle |
InstancedActorsData.h | ||
AInstancedActorsManager * GetManager() |
InstancedActorsData.h |
|
|
AInstancedActorsManager & GetManagerChecked() |
InstancedActorsData.h | ||
FMassEntityManager & GetMassEntityManagerChecked() |
InstancedActorsData.h | ||
FInstancedActorsDeltaList & GetMutableInstanceDeltaList() |
InstancedActorsData.h | ||
int32 GetNumFreeInstances() |
Returns the current invalid instance count, if any (i.e: GetNumInstances() - NumValidInstances) | InstancedActorsData.h | |
int32 GetNumInstances() |
Returns the total instance count, including both valid & invalid instances e.g: GetNumFreeInstances() + NumValidInstances Useful for iterating by FInstancedActorsInstanceIndex or allocating same-sized instance data arrays | InstancedActorsData.h | |
const std::remove_const_t< T > & GetSettings() |
InstancedActorsData.h | ||
const std::remove_const_t< T > * GetSettingsPtr() |
InstancedActorsData.h | ||
const FInstancedActorsVisualizationInfo * GetVisualization
(
uint8 VisualizationIndex |
Get runtime visualization info by index for visualizations added with AddVisualization. | InstancedActorsData.h | |
const FInstancedActorsVisualizationInfo & GetVisualizationChecked
(
uint8 VisualizationIndex |
Get runtime visualization info by index for visualizations added with AddVisualization. | InstancedActorsData.h | |
bool HasSpawnedEntities() |
Returns true if InstanceTransforms has been consumed to spawn Mass entities. | InstancedActorsData.h | |
void Initialize() |
Called early in AInstancedActorsManager::InitializeModifyAndSpawnEntities to intitalize Settings, default visualization & Mass entity template. | InstancedActorsData.h | |
bool IsValidInstance
(
const FInstancedActorsInstanceHandle& InstanceHandle |
Returns true if InstanceHandle refers to this instance data and we have current information for an instance at InstanceHandle.InstanceIndex | InstancedActorsData.h | |
virtual void OnBulkLODChanged
(
EInstancedActorsBulkLOD NewBulkLOD |
This event virtual is public because it is called by InstancedActorsStationaryLODBatchProcessor. | InstancedActorsData.h | |
void OnInstancedActorDestroyed
(
AActor& DestroyedActor, |
Called by UInstancedActorsRepresentationActorManagement when a managed actor is destroyed. | InstancedActorsData.h | |
bool OnInstancedActorMoved
(
AActor& MovedActor, |
Called by UInstancedActorsRepresentationActorManagement when a managed actor is moved | InstancedActorsData.h | |
void OnPersistentDataRestored() |
Called when persistent data has been applied / restored. | InstancedActorsData.h | |
void OnRep_InstanceDeltas
(
TConstArrayView< int32 > UpdatedInstanceDeltaIndices |
Called by FInstancedActorsDeltaList::PostReplicatedAdd and PostReplicatedChanged on InstanceDelta replication. | InstancedActorsData.h | |
void OnRep_PreRemoveInstanceDeltas
(
TConstArrayView< int32 > RemovedInstanceDeltaIndices |
Called by FInstancedActorsDeltaList::PreReplicatedRemove on InstanceDelta removal replication (just before the actual array element removal) | InstancedActorsData.h | |
void RemoveAllVisualizations() |
Remove all previously registered instance visualization, deleting all ISMC's. | InstancedActorsData.h | |
bool RemoveInstance
(
const FInstancedActorsInstanceHandle& InstanceToRemove |
Removes all instance data for InstanceHandle. | InstancedActorsData.h | |
void RemoveInstanceLifecyclePhaseDelta
(
FInstancedActorsInstanceIndex InstanceIndex |
Mz | InstancedActorsData.h | |
void RemoveInstanceLifecyclePhaseTimeElapsedDelta
(
FInstancedActorsInstanceIndex InstanceIndex |
Mz | InstancedActorsData.h | |
void RemoveVisualization
(
uint8 VisualizationIndex |
Remove previously registered instance visualization, deleting all ISMC's. | InstancedActorsData.h | |
void RollbackInstanceDeltas
(
TConstArrayView< int32 > InstanceDeltaIndices |
Called on clients by OnRep_PreRemoveInstanceDeltas to revert instance delta change to mass entities | InstancedActorsData.h | |
void RuntimeRemoveAllInstances () |
Removes all instances as if they were never present i.e: these removals are not persisted as if made by a player. | InstancedActorsData.h | |
void RuntimeRemoveInstances
(
TConstArrayView< FInstancedActorsInstanceIndex > RuntimeRemoveInstances |
Removes RuntimeRemoveInstances as if they were never present i.e: these removals are not persisted as if made by a player. | InstancedActorsData.h | |
void SetInstanceCurrentLifecyclePhase
(
FInstancedActorsInstanceIndex InstanceIndex, |
Mz | InstancedActorsData.h | |
bool SetInstanceTransform
(
const FInstancedActorsInstanceHandle& InstanceHandle, |
Set/update the transform for an instance. | InstancedActorsData.h | |
void SetReplicatedActor
(
FInstancedActorsInstanceIndex Instance, |
Called in UInstancedActorsComponent::OnRep_InstanceHandle on clients to set ReplicatedActor as the current actor for Instance's mass entity. | InstancedActorsData.h | |
void SetSharedInstancedActorDataStruct
(
FSharedStruct InSharedStruct |
InstancedActorsData.h | ||
void SetSharedSettings
(
const FConstSharedStruct& InSharedSettings |
InstancedActorsData.h | ||
void SetupLoadedInstances () |
Performs setup after all Instances have been loaded. | InstancedActorsData.h | |
void SpawnEntities() |
Called in AInstancedActorsManager::InitializeModifyAndSpawnEntities to spawn Mass entities for each instance. | InstancedActorsData.h | |
void SwitchInstanceVisualization
(
FInstancedActorsInstanceIndex InstanceToSwitch, |
Switches InstanceToSwitch to use the 'visualization' at NewVisualizationIndex, previoulsy added via AddVisualzation. | InstancedActorsData.h | |
virtual void UpdateCullDistance() |
InstancedActorsData.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
uint8 AllocateVisualization () |
Adds or reuses a previously removed entry in InstanceVisualizations | InstancedActorsData.h | |
virtual void ApplyInstanceDelta
(
FMassEntityManager& EntityManager, |
Helper function used in ApplyInstanceDeltas to apply a single delta | InstancedActorsData.h | |
void CreateEntityTemplate
(
const AActor& ExemplarActor |
Called on BeginPlay to create default entity template. | InstancedActorsData.h | |
FMassEntityHandle GetEntityHandleForIndex
(
const int32 Index |
InstancedActorsData.h | ||
void InitializeVisualization
(
uint8 AllocatedVisualizationIndex, |
Creates ISMCs for VisualizationDesc.InstancedMeshes, registers them with Mass and sets FInstancedActorsVisualizationInfo::MassStaticMeshDescIndex with the newly registed ISMC decription index | InstancedActorsData.h | |
virtual void ModifyEntityTemplate
(
FMassEntityTemplateData& ModifiedTemplate, |
InstancedActorsData.h | ||
virtual void OnDeinitialize() |
InstancedActorsData.h | ||
virtual void OnDespawnEntities() |
InstancedActorsData.h | ||
virtual void OnInitialize() |
InstancedActorsData.h | ||
virtual void OnSpawnEntities() |
InstancedActorsData.h | ||
void ReleaseEntityTemplate() |
Called from Deinitialize to destroy the owned FMassEntityTemplate | InstancedActorsData.h | |
virtual void RollbackInstanceDelta
(
FMassEntityManager& EntityManager, |
Helper function used in RollbackInstanceDeltas to rollback a single delta | InstancedActorsData.h | |
AActor * UnlinkActor
(
FInstancedActorsInstanceIndex InstanceToUnlink |
Unlink InstanceToUnlink's Actor (if any) from Mass by clearing the entities reference to it and disconnecting from any subscribed actor signals, essentially 'forgetting' about the actor. | InstancedActorsData.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void GetLifetimeReplicatedProps
(
TArray< FLifetimeProperty >& OutLifetimeProps |
InstancedActorsData.h | ||
virtual bool IsNameStableForNetworking() |
InstancedActorsData.h | ||
virtual void PostDuplicate
(
EDuplicateMode::Type DuplicateMode |
InstancedActorsData.h | ||
virtual void PostLoad() |
InstancedActorsData.h | ||
virtual void RegisterReplicationFragments
(
UE::Net::FFragmentRegistrationContext& Context, |
InstancedActorsData.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static UInstancedActorsData * GetInstanceDataForEntity
(
const FMassEntityManager& EntityManager, |
Returns the 'owning' UInstancedActorsData for EntityHandle by checking it's FInstancedActorsFragment (if any) returning nullptr for unknown entities. | InstancedActorsData.h |