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!
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
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
(@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! )
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.
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!!!
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?
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!
I will test this out on my effects I am currently making! Thank you for making this tool!
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
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.