Version 1.2 Changes:
- Add option to perform particle event dispatch during either Update (default) or LateUpdate. Use of LateUpdate generally yields more accurate positioning of particles with respect to game objects in the world. The default remains Update for backwards compatibility for existing users. When creating new effects it is recommended to select LateUpdate.
- Add new methods SetClientDataByKey() and GetClientDataByKey() for storing and retrieving client data by key. Storing client data by key allows multiple scripts to store, read and modify only the data that is of interest to that script, without the need to be aware that other scripts may also be modifying client data for the same particle.
- Add Clean Up On Disable option. Enabling the option will cause all non-persistent event listeners (i.e. those added by using the API) to be removed when the particle system is disabled. This is useful when you need to enable and disable a particle system object during a scene. If a particle system object is always enabled or you haven’t added Participle event triggers using the runtime API, you don’t need to set this.
- Add new Spirograph example that explicitly emits particles at their proper starting locations to prevent “trail spikes”. An issue with using birth events and then moving particles to a desired starting position is that, if trails are enabled for the particle system, you will get a trail segment drawn from the emission position to the desired starting position. Since there is no way to enable/disable trail generation for individual particles, the only way to avoid these trails spikes is to make sure that the particles are emitted at their desired starting position.
- Fix issue that was causing bizarre wave drawing in the Frame_SineWaves example. Needed to reorder calls to SetParticles() and SetCustomParticleData() in the particle event dispatcher. This issue has been reported to Unity and was investigated. They confirmed that it is a Unity issue, but the risks of changing (“fixing”) the behavior are substantial. Fortunately, reordering the aforementioned calls seems to fix it. For more info see case 1299919 in the Unity issue tracker.
- Fix the event info “particle” structure not being up to date when multiple events were being dispatched for the same particle in the same frame.
- Fix issue in EH_FollowParticles to prevent null references in the Follow method. If follower particles are emitted independently of the InitFollower method (e.g. Emission module is active), there were previously null reference exceptions in the Follow method. This wasn’t a problem with the example scene associated with this script, but a user encountered it when they adapted the example script for a different purpose.