I’m glad that I can announce new kind of GUI plugin: UI Particle System
UI Particle System is advanced solution for 3D particles used in Unity GUI. With this plugin you will not need to worry about changing sorting orders, adding multiple canvases, etc. With it you can just add particles to GUI in few quick steps. UI Particle System is also mobile friendly, its very efficient depth buffer generating method makes is very cheap for performance.
Features:
-rendering particles on GUI, based on custom depth buffer
-full support for Shuriken Particle System (only what you need to change is shader)
-culling mask feature (so you can use particles in scroll views, etc.)
-easy to setup component-attach UI Particle system
-advanced, highly customizable particle shader
Requirements:
-Unity GUI
-Canvas with Screen Space - Camera mode. System does not work without GUI camera set.
Perfect for:
-creating cards special effects (like those from Hearthstone or even better because you are not limited to 2D and based on shader animation effect)
-special effects of GUI elements like buttons or other interactable elements
-rewarding effects with complicated and advanced particles
Your link is broken. It just forces me to log in than takes me to my downloads. Your likely using the new broken store which does not work. I would like to look at this but unfortunately asset store is broken.
Do you have a link to your asset on the old store?
Sure here it is: Unity Asset Store - The Best Assets for Game Making
Thank you for information. I’ve checked link to new asset store but it worked fine for me (on private mode of browser). I’ll also change link in main post
Something must be wrong with unity. Still doesn’t work. Forces me either to log in. When I do that it just takes me to my downloads. This is normal based on the new store. Its a mess.
Oh well. I will just have to keep an eye on this thread and hope they fix it. Thank you for trying at least.
I will have my hands full working with the UI Shader options added to Amplify Shader but I was intrigued by this. The shaders make my UI fantastic but adding particle fx also opens the door for more stunning vfx. I know first hand the hassles of multiple canvas and cameras trying to have 3d particle fx show on a 2D UI. It was a huge time sink and frustrating. I am super happy that the people behind Amplify Shader made it a reality. So much easier using tools like that and I am sure this one as well for those things.
Sounds like a handy tool, I wish you best of success an hope the store doesn’t effect your exposure.
Thank you for note and wishes!
And yes with my plugin you will not need to create additional canvases, fight against different rendering queues, etc. Also if you use parameters from shader from UI Particle System you can also make your own shader for particles/effects (but I’m sure that in most cases it will be enough for you because it’s quite advanced and multi-option) - probably you can easily make shader in Amplify Shader which will work with my system.
I’d love to see some interactivity between the depth mask and the particles if possible.
Or, some UI-particles interaction (size dependent orbit, marching ant movement, depth slice filling and so on)
Definitely looking forward to see what’s next in the roadmap!
Hi, you could see how depth mask works on preview movie (
) on Play, Shop and Ranking buttons.
For example, without using depth mask Shop button effect would look like this: as you can see particles are in front of button but in 3D in editor I’ve set them to be around button,
but with depth mask (the same positions of particles):
and how it looks on depth mask/buffer:
About other features: size dependent orbit can be easily achieved by simple movement script by getting UI objects size by this method: Unity - Scripting API: RectTransform.GetWorldCorners (if I understood you well), same with ant movement. Or you can just make auto-rotating transform with child with position offset (like in Shop button example - it’s attached into plugin examples)
Can you explain please what do you mean as “depth slice filling” ?
About roadmap: I have in plans adding soft particle effect so when particles move through UI element they will fade out nicely. Probably they will be even possible for use on mobile games because taking UI depth buffer here is cheaper than in “true” 3D. If you have idea for more features I’ll be glad to hear them
Yes, thanks, I subscribed to your YT channel and watched all 3 videos before posting
About UI-Particles interaction I meant specific scripts to let each and every particle to programmatically interact either with the bounds of an UI element (perimeter, area), or to keep some constant distance from it (contour), or to orbit around the approximate area (not around the point).
By particle “depth slice filling” I meant taking a slice of the depth mask, and making particles spawn only within 2 certain threshold values of depth mask.
Using your pic as a reference, allowing the user to make a PS just spawn the particles if the corresponding spawn points fall inside some threshold values in the depth mask.
Even colliding with the depth mask would be nice (not at the levels of the UEngine, maybe something less complex)
I’m just brainstorming as “it’d be cool if”, these are not actual requests
Thank you for explanation. Thats great that author of that amazing VFX packs is interested in my plugin!
About programmable interactions: UI Particle System allows to use Unity Shuriken Particle System in 100% so you can use same scripts as you use in your packages but instead of getting bounds of Renderer component you need to use GetWorldCorners of RectTransform or get Graphic bounds from Image/Raw Image. Please note that you can also use typical 3D colliders in UI Particle System. Also if you are interested in making more advanced effects, I’ve submitted to Asset Store UI 3D-System which will be extended version of UI Particle System, because it allows to use also 3D Renderers, lights, etc. It will support Rect Transform dependent mesh scaling and… just more features Oh and one more thing: UI 3D-System will be treated as Upgrade to UI Particle System so someone who bought current plugin will need to pay only difference between prices.
About depth slice filling: UI Particle System is Z position dependent (as I said it works like depth buffer) so if you spawn programmatically particles on certain Z positions you can achieve this effect.
About colliding with depth mask: here are same rules as in basic 3D: you can use colliders or you can change shader/script to react on depth mask pixels change. Depth mask is easily accessible so it wouldn’t be hard.
If you are interested in looking into documentation (which better explains what are additional possibilities) please PM me with your mail, so I’ll share pdf with you
Version 1.03 has been released!
Whats there:
-Fixed errors on some edit inspector parameters in runtime
-Added scene view improvements which allow to see how particles are cut in game mode (previously this was only possible in scene view 2D mode because of screen space casting)
Because of multiple questions about “when will be supported soft particle system with GUI collisions” I’ve decided to submit support for this at this weekend so in incoming week it should be available as an update (usually it takes for Unity to review update in 3-4 work days).
Here’s screen whats difference it makes:
What is performance cost of this feature? Nearly the same as without soft particle(in shader it’s case of using higher precision for computations and 3 more cheap-operations, like multiply). Of course it’s recommended to not use this feature unlit it’s not needed, because still it is some performance cost for GPU (especially in case of mobiles).
I have good news: asset will participate to end of March in Unity Sale program for Unity Plus/Pro licenses, which means that those users will get 20% discount for UI Particle System.
Hi, we are considering using your asset and have a question.
Will the hierarchy affect the particle system?
For instance, I want to make a card prefab that has a particle system as a background. If I clone it and make those two overlapped, will the background particle stay between those two card prefabs following the hierarchy?
Or do we have to change layer order or rendering queue?
Hi @moonaanii , hierarchy does not affect particle system. It works exactly like in 3D, so if one particles are closer to camera than others, they will be visible in front.
In case that you have 2 cards in the same X,Y,Z position particles will overlap like in typical 3D.
There are 2 solutions to separate backgrounds in this case (much faster than using Unity layers or changing rendering queue):
-you can change UI Particle System culling layer mask number (when you put particles into frame you can select 0-255 culling layer so they will be visible only in this layer)
-or simply, because UI Particle System also works in Z position, you can just put cards in different Z pos. For example if particles is flying inside card because of culling but flying out of it in Z position for 5 z-range you should make those 2 cards separated in Z position by 5, so particles from one will not fly into another card.
Hi,
Your plugin seems very similar to Lectus Games’ one and it’s hard to decide which one to get. Are you somehow related?
Secondly, does your plugin support both the Rendered module and Texture Sheet Animation module in the shuriken particle system?
Hi @Starbox ,
at first look - yes it looks similar, but UPS supports 3D effect (so you can make Particle System flying around GUI elements), additionally you can just use Shuriken Particle System (all features) so you don’t need to worry that something what worked in 3D won’t work in GUI.
The plus of Lectus Games’ plugin is that it allows use Screen Space Overlay Canvas GUI (UPS supports Screen Space Camera GUI and World Space Camera GU modes, usually people use Screen Space Camera canvases so that’s enough, especially if you are targeting top quality).
About your second question: yes, UPS supports Renderer module and Texture Sheet Animation. It also supports collisions, noise, trails, external forces and other Shuriken Particle features.
Yes, there’s always the option to use a screen space camera without a camera. Although not an intuitive approach, it does work and functions as an overlay on the screen.
Renderer and Texture Sheet Animation are important to my project, so as long as I can have a real all-2D appearance I’m happy.
Looks like UPS is the way to go for me.
I’m happy to hear that:) I hope my plugin will help you in development.
About null camera in canvas: well UPS needs this camera so canvas has to have camera attached. I didn’t even know that canvas would work with empty camera field