As mentioned, this can be currently accomplished by using a custom data stream instead of the built in color, but it does limit what you can do as the custom data streams only animate over the normalized particle lifetime. However you can also pass any other data you might need or want (actual lifetime, speed, size, velocity, rotation, etc) to the shader directly and do your custom calculations there. In the end this can be far more efficient than doing all of the work in the CPU like PopcornFX and Unity both do it.
They got a lot better just in the last few months, but yeah, still a lot of missing (and last I checked minorly buggy) stuff there.
I’m actually curious what more you’d want here. The current flipbook controls have a lot more functionality than I’ve seen most places. They also added support for sprite atlas based animation.
Yep, this is one I’ve had to write for every project. Currently works via a script job that tracks the current camera and then counter rotates the sprites on the systems I’ve marked (with an attached component) just before rendering. I might look to move this to be part of my particle shaders instead so I’m not iterating over so many arrays every frame. I was pleased to see Unreal added this some time ago.
See the new Standard Particle shader they added with 2017.3+. A lot better implementation than the confusing “Soft Particles Factor” they have on the older particle shaders, and not clamped to ranges too small for large scale effects and too large for first person effects.
This is possible now, though it’s still not great, and still not built in which is perhaps the most important part.
Relatively trivial to add via scripting, but I agree. Unity has some very basic physics forces (basically just directional and spherical wind, and gravity) that you can have affect particles, but they don’t have built in attractors of any kind. It’s always struck me as an odd omission.
Yeah …
This was a feature that was requested when they were asking for features people wanted, and they consider it implemented … but they did it purely as burst emission count ranges which isn’t quite what those people were asking for.
Yeah, this is a big one. The usual response is to use Unity’s built in LOD system, but this is terrible for particles as it means when the LOD changes it just swaps to a completely different particle system, which means the particles are guaranteed not to line up.
Another one that’s relatively easy to do from script, and I believe some of the assets on the store that extend the particle system have this. In general there are a ton of more advanced features like this that Unity don’t seem interested in implementing on their own.
Curious about this one. What would you want specifically?