Particle System Toolbox for Unity

Hey guys,

TL;DR: this is a tool to help with Particle Systems in Unity - see the screenshots at the end, and the download link!

Here’s a tool I started back when I was working on Seasons after Fall: I had a lot of repetitive tasks to do, since I had to do effects for each season, and it was quite tedious.
The idea was to easily copy colors and modules from a Particle System, and also to edit multiple Particle Systems at the same time (which is really lacking in Unity).

So basically I rewrote my own Particle System inspector!
It was both lots of fun and headaches to do! :slight_smile: :head_bandage:

I was wondering about developping a full version for the Asset Store, but I’d rather share tools and sell finished assets - plus this one uses reflection a bit which I think is forbidden there.
Also I don’t know if there’s a huge audience for that kind of stuff on the Asset Store, so this forum motivated me to port it to Unity 5.4 as I’m sure some people will be interested here!

What’s in the script

  • Multiple ParticleSystem editing, showing where values are different
  • Reorganization of some properties so that it’s more logical (especially the Renderer module)
  • Module-based Copy/Paste options
  • Copy/Paste colors (start color + color over lifetime and color by speed if enabled)
  • Particle playback shortcuts

Known issues

  • It only works with Unity 5.4 currently
  • Curve UI can be funky sometimes (it uses the default AnimationCurve window instead of the Particle System custom one)
  • “Random between two Curves” editing is unsupported
  • Selecting 2 or more Particle Systems can take a second or two to initialize
  • The script has only been tested by me so far, so expect bugs and issues! (and please report them!)

Usage

  • Place the ParticleSystemToolbox.cs file in an Editor folder
  • Open through the menu: Tools/Particle System Toolbox or with Shift+Ctrl+T
  • Select one or multiple Particle Systems to see the new Inspector
  • Right-click on any module tab to show the context menu
  • From there it should be straightforward but feel free to ask questions!
  • Make backups and save regularly: I don’t know how stable the script is, so we never know

License

“CC Attribution-NonCommercial-ShareAlike 3.0 Unported” seemed to be the best fit!
https://creativecommons.org/licenses/by-nc-sa/3.0/

Basically you can use it for whatever you want, including commercial projects, but you can’t sell or profit from it anywhere in any way!
Contributions are welcomed if you can find your way around my messy code :smiley:

< Download here >

If you have requests, suggestions or bug reports, fire away!

Screenshots

Context menu to copy modules or colors

Differences between two Particle Systems

The new Renderer tab!

(@Keith It looks like the Resources category was meant for sharing articles, tutorials and such, but it also seemed a good fit for this. Feel free to move it if you think that’s necessary though! )

12 Likes

Oh man, you’re my hero. Most of these points are part of my growing pains getting into Unity (as per my other recent topics). Can’t wait to check this out.

As for the category, this is a perfect example of what should be here.

Thanks so much for sharing!

Just making sure it’s ok, I have a few friends that are students that have been learning Unity, can I send them a link to the download? This is awesome!! This would definitely help with their work flow… And Mine!!!

Yes, go ahead!
I’d rather not have the link hosted on another webpage, but feel free to share it privately or redirect to this thread!

So far your work looks brilliant! but I would like to ask few questions.
could you point out the main differences between your tool to the default particle system in unity?
like what is the selling point of it? any strengths that I should learn compared to the default on?

Cheers,
Ohad

The goal was to replicate Unity’s Particle System interface to easily extend it.
So the main added tools currently are:

  • multiple Particle Systems editing at the same time, with visual diffs between them
  • copy/paste modules and colors
  • playback shortcuts: you can play, stop, clear the system (vs play/clear only with Unity’s UI)
  • small interface tweaks (like separating the inherited and particle-specific properties in the Renderer module)

It’s not meant to entirely replace Unity’s UI, since I couldn’t use their built-in particle curve editor for example (so I’m using the default animation curve window for simple curves, and just don’t support random between 2 curves).

That’s about it for now, but if you have suggestions to add, feel free to share!

2 Likes

thanks my friend for pointing out the main tools!
if I get any idea I will defiantly share it back, thank you for sharing as well!

I will test this out on my effects I am currently making! Thank you for making this tool! :slight_smile:

Idea:
Inside the play-clickzone (to play and stop the effect).If the user were to use the mouse scroll that could effect the playback speed? This would be a nice feature when it comes to polishing effect, just seeing so the impact and etc works as it should, especially in 3D space.

Currently you can affecting the playback speed in realtime, but its very unintuitive. But implementing this feature should be easier because the function is already inside unity.

Renderer: Render Mode Mesh does not seem contain a slot to put in meshes

My most used funciton: Select all particle systems, turn of looping.

So good

2 Likes

Good idea, I didn’t think about using the mouse scroll wheel so far!
I think I can also implement a key + scroll wheel, to scrub frame-by-frame for example.

Now that Unity 5.5 is out I need to adapt the tool to it, but I don’t have much time these days so I don’t know when that’s coming.

Keep posting ideas if you have any though!