Change Logs
1.5.0
(21/10/2024)Features
- Particle Effects and Decal Effects can now be assigned multiple prefabs to choose from when playing a particle effect and placing a decal.
- Added Particle Prefabs, Particle Selection Mode, and Velocity Reference Range properties to Particle Effects.
- Added Decal Prefabs, Decal Selection Mode, and Velocity Reference Range properties to Decal Effects.
- Added new classes and data structures IMultiPrefabEffectData, IMultiPrefabEffectResult, ImpactMultiPrefabEffectProcessor, and ImpactMultiPrefabEffectAuthoringBase for handling effects that use multiple prefabs.
The updates to Particle and Decal effects will not break existing effects, however a warning will be displayed on Particle and Decal effects about the now obsolete single particle and decal prefab fields, as shown here:
Fixes
- Fixed errors when attempting to register a null Impact Material.
- Fixed errors when disabling effect processor scripts.
1.4.1
(09/08/2024)Features
- Added Enable Collision Processing property to Impact CFX Manager, which allows you to disable playing effects from collisions.
- Added Audio Fade Out Time property to Impact Audio Source, which controls how long it takes audio to fade out for sliding and rolling effects.
- Added properties in ImpactCFXManager for controlling collision limits via code.
- IDs for materials, effects, and pools can now be configured to use the object/asset's instance ID or its name.
Fixes
- Fixed CollisionQueueCapacity in ImpactCFXManager returning the wrong field.
- Material processors now use OnEnable and OnDisable for initialization and cleanup.
- Audio and Particle effects will now start playing in the rare case that they are updated for sliding and rolling, but not actually playing.
1.4.0
(08/08/2024)Features
- Added Ignore Same Parents property to Impact Triggers, which allows triggers to ignore collisions with objects that have the same parent.
- Optional fallback parameters can now be provided to QueueCollision methods if materials cannot be found from the colliding objects.
- Added OnEffectPlayed and OnPooledEffectPlayed events to effect processors.
Changes
- Refactored processResult method into public PlayEffect methods. These methods can be called to immediately play effects using the provided data.
- Impact CFX Manager now runs initialization and cleanup in OnEnable and OnDisable, respectively.
Fixes
- Fixed errors in Impact Terrain Material Processor when terrains are destroyed.
- Improved active instance handling in ImpactCFXGlobal, to help prevent errors when the Impact CFX Manager instance is destroyed.
- Fixed errors and warnings in demos.
- Fixed various issues when the Impact CFX Manager script/game object is enabled and disabled at runtime.
Other Packages
The FMOD Integration, Wwise Integration, Master Audio Integration, and VFX Batch packages have also been updated with the following changes:
- Refactored effect processors to derive from ImpactSimpleEffectProcessor to reduce repeated code and make use of new methods and events.
Note that this change to those packages will cause the Queue Capacity property to be reset, so make sure you double check that property to make sure it is set correctly!
1.3.1
(28/03/2024)Changes
- Logging for material and effect registering and clearing now only appears when logging is enabled.
1.3.0
(11/02/2024)Features
- Added Register Material On Start property to Impact Objects and the Impact Material Mapping Processor.
- Added various API methods to ImpactCFXGlobal and ImpactCFXManager for managing registered materials.
Changes
- Changed the impact material registration code in the Impact CFX Manager and effect processors so that materials and effects can now be registered at any time.
- Added logging for material registering and clearing.
Fixes
- All registered materials and effects, including object pools, are now properly destroyed when the Impact CFX Manager they are created from is destroyed.
If you are using the FMOD, WWise, or MasterAudio integration packages, you will also need to download the latest versions of those packages.
1.2.5
(22/01/2023)Fixes
- Fixed editor script issue that was preventing objects from being assigned to triggers.
1.2.4
(19/12/2023)Fixes
- Fixed various issues with ObjectPoolJob that could cause errors or unexpected behavior when no objects are available.
1.2.3
(25/08/2023)Features
- ImpactRaycaster methods now include an optional sourceObject parameter for the object that sent the raycast. This allows for effects to be attached to objects that do raycasts.
- Added demo for the Built-In renderer.
Changes
- Various minor optimizations.
- RigidbodyContainer no longer caches transform data, as this was almost doubling the run time for FixedUpdate.
1.2.2
(20/07/2023)Fixes
- ImpactParticleSystem no longer calls the ParticleSystem.Stop() function for non-looping particles, which was causing the particles to not properly play in some cases.
1.2.1
(27/05/2023)Changes
- ImpactEffectProcessorJob will now give a material missing error if it cannot find a material for the object triggering the collision.
Fixes
- Changed GUID of ImpactContactPoint script file to fix GUID collisions when importing Impact CFX into a project that already has legacy Impact.
1.2.0
(24/04/2023)Features
- Added ImpactSimpleEffectProcessor and ImpactPooledEffectProcessor abstract classes. These handle a lot of common implementation for effect processors, making effect processors that inherit from them much simpler to write.
- Added ImpactPooledEffectAuthoringBase abstract class for use by the ImpactPooledEffectProcessor mentioned above.
- Added EffectObjectPool abstract class for use by the ImpactPooledEffectProcessor mentioned above.
- Added back Impact Object Rigidbody Cheap since this object may still be useful/necessary for some use cases.
Changes
- Refactored built-in Audio, Particle, and Decal effect processors to use new base classes mentioned above.
- Changed IEffectResult.IsValid to IEffectResult.IsEffectValid to resolve conflict with IObjectPoolRequest.IsValid.
- Changed IObjectPoolRequest.IsValid to IObjectPoolRequest.IsObjectPoolRequestValid to resolve conflict with IEffectResult.IsValid.
- EffectID, IncludeTags, and ExcludeTags properties on IEffectData interface now require setters.
1.1.0
(14/04/2023)Features
- Added new properties to Impact Particle Systems:
- Scale Size With Velocity – Allows scaling the particle start size based on the collision velocity.
- Scale Speed With Velocity – Allows scaling the particle start speed based on the collision velocity.
- Scale Lifetime With Velocity – Allows scaling the particle start lifetime based on the collision velocity.
- Added new Scale With Velocity property to Impact Decals to allow scaling the decal based on the collision velocity.
- Added new Impact Object Custom Velocity object, which tracks its own velocity rather than relying on the rigidbody's velocity.
- Added ability to enable/disable logging from the Impact CFX Project Settings. Logging is controlled by the scripting define symbol IMPACTCFX_DEBUG.
Changes
- Impact Object Rigidbody Child has been made more generic and renamed to Impact Object Child.
- Most fields and methods of Impact Audio Source, Impact Particle System, and Impact Decal are now protected instead of private for easier extension.
Fixes
- Fixed incorrect velocity comparisons with the Threshold property.
- Fixed various issues with the URP and HDRP demos.
- Fixed Gizmo icons for trigger components being in the wrong folder.
Due to changes in script names, it is highly recommended to delete the Impact CFX folder before updating to avoid asset GUID conflicts.