There is no spoon
UE3:EmitterPool (UT3)
From Unreal Wiki, The Unreal Engine Documentation Site
- Package:
- Engine
- Direct subclass:
- UTEmitterPool
- This class in other games:
- UDK
| This is an auto-generated page and may need human attention. Please remove this tag if the page seems reasonably complete or replace it with the {{expand}} tag if the page is not yet complete. |
this class manages a pool of ParticleSystemComponents it is meant to be used for single shot effects spawned during gameplay to reduce object overhead that would otherwise be caused by spawning dozens of Emitters
Copyright 1998-2007 Epic Games, Inc. All Rights Reserved.
[edit] Properties
[edit] ActiveComponents
Type: array<ParticleSystemComponent>
components currently active
[edit] bLogPoolOverflow
Type: bool
Modifiers: globalconfig
option to log out the names of all active effects when the pool overflows
[edit] bLogPoolOverflowList
Type: bool
Modifiers: globalconfig
[edit] FreeMatInstConsts
Type: array<MaterialInstanceConstant>
Modifiers: private, const
The free MaterialInstanceConstants used by emitters in this pool
[edit] FreeSMComponents
Type: array<StaticMeshComponent>
Modifiers: private, const
The free StaticMeshComponents used by emitters in this pool
[edit] IdealMaterialInstanceConstants
Type: int
Default value: 250
[edit] IdealStaticMeshComponents
Type: int
The ideal number of StaticMeshComponents and MaterialInstanceConstants. If their counts are greater than this for more than ReductionTime, then they will be chopped down to their respective settings.
Default value: 250
[edit] MaxActiveEffects
Type: int
maximum allowed active components - if this is greater than 0 and is exceeded, the oldest active effect is taken
[edit] PoolComponents
Type: array<ParticleSystemComponent>
Modifiers: const
components currently in the pool
[edit] PSCTemplate
Type: ParticleSystemComponent
Modifiers: protected
template to base pool components off of - should not be used for effects or attached to anything
Default value: ParticleSystemComponent'ParticleSystemComponent0'
[edit] RelativePSCs
Type: array<EmitterBaseInfo>
[edit] SMC_MIC_CurrentReductionTime
Type: float
Modifiers: transient
[edit] SMC_MIC_ReductionTime
Type: float
The amount of time to allow the SMC and MIC arrays to be beyond their ideals.
Default value: 2.5
[edit] Default values
| Property | Value |
|---|---|
| CollisionType | COLLIDE_CustomDefault |
| TickGroup | TG_DuringAsyncWork |
[edit] Subobjects
[edit] ParticleSystemComponent0
Class: Engine.ParticleSystemComponent
| Property | Value |
|---|---|
| AbsoluteRotation | True |
| AbsoluteTranslation | True |
[edit] Structs
[edit] EmitterBaseInfo
Modifiers: native
list of components that should be relative to an Actor
- ParticleSystemComponent PSC
- Actor Base
- Object.Vector RelativeLocation
- Object.Rotator RelativeRotation
[edit] Functions
[edit] Native functions
[edit] FreeMaterialInstanceConstants
internal - moves the MIConstants from given SMComponent to the pool free list
[edit] FreeStaticMeshComponents
internal - moves the SMComponents from given PSC to the pool free list
[edit] GetFreeMatInstConsts
internal - retrieves a MaterialInstanceConstant from the pool free list
Parameters:
- bCreateNewObject - If TRUE, create an MIC w/ the pool as its outer
Returns:
- MaterialInstanceConstant The MIC, NULL if none was available/created
[edit] GetFreeStaticMeshComponent
internal - retrieves a SMComponent from the pool free list
Parameters:
- bCreateNewObject - If TRUE, create an SMC w/ the pool as its outer
Returns:
- StaticMeshComponent The SMC, NULL if none was available/created
[edit] GetPooledComponent
internal - helper for spawning functions gets a component from the appropriate pool array (checks PerEmitterPools) includes creating a new one if necessary as well as taking one from the active list if the max number active has been exceeded
Returns:
- the ParticleSystemComponent to use
[edit] ReturnToPool
internal - detaches the given PSC and returns it to the pool
[edit] Other instance functions
[edit] OnParticleSystemFinished
set to each pool component's finished delegate to return it to the pool for custom lifetime PSCs, must be called manually when done with the component
[edit] SpawnEmitter
plays the specified effect at the given location and rotation, taking a component from the pool or creating as necessary
Parameters:
- EmitterTemplate - particle system to create
- SpawnLocation - location to place the effect in world space
- SpawnRotation - opt) - rotation to place the effect in world space
- AttachToActor - opt) - if specified, component will move along with this Actor
Returns:
- the ParticleSystemComponent the effect will use
Note: the component is returned so the caller can perform any additional modifications (parameters, etc), but it shouldn't keep the reference around as the component will be returned to the pool as soon as the effect is complete
[edit] SpawnEmitterCustomLifetime
spawns a pooled component that has a custom lifetime (controlled by the caller) the caller is responsible for attaching/detaching the component as well as calling our OnParticleSystemFinished() function when it is done with the component the pool may take the component back early - if it does, it will trigger the component's OnSystemFinished delegate so the caller can guarantee that it will be triggered
Parameters:
- EmitterTemplate - particle system to create
Returns:
- the ParticleSystemComponent to use
