Does Unity5 have native support to scale particle systems ?

The only particle scaling solution I found was on the unity asset store.
Particle Scaler by Roel Ezendam
https://www.assetstore.unity3d.com/en/#!/content/4400

Does Unity5 have native support to scale entire particle systems ?

If so, can you point me to info on how to do it ?

I don’t know about native, but I use fxeditor by Jean Moreno (the cartoon fx fame). Then again, You could look at his code and build your custom fx editor yourself.

Thanks for the info!

For simple particle systems, I use this code,

    public static void ScaleParticle( ParticleSystem particle, float scale)
    {
        particle.startSize *= scale;
        particle.startSpeed *= scale;
        particle.startRotation *= scale;
        particle.transform.localScale *= scale;
        particle.Stop();
    }

Just create the particle at a base resolution, and then calculate the scale factor based on the current resolution, etc.

This is also very helpful. Thank you!

One thing I should mention. When scaling a prefab, make sure it is on an instance of the prefab and not the prefab itself. For some reason, unity will retain the scale modification so that at every time this is called the particle will get bigger and bigger (or smaller depending on the scale factor). Yes, unlike a lot of modifications that can be made during play mode, this will permanently modify and non instanced prefab/particle.

I thought you can’t modify the prefabs at runtime… Now I am baffled…

Trust me, they can be modified at runtime.

If you add prefabs via a gameobject/particle system publicly in the inspector and then modify it directly using the scale script, the prefab itself with be permanently modified.

Always work with instanced particle systems is my advice.

Amazing realistic fire package has an FXScaler for the Editor. You add the script to the Particle and then adjust the slider

I believe that only works in editor mode rather than being accessible during build though?

I was under the impression that a solution was wanted to scale particles at run time?

Not sure. He didn’t specify. There is his options. :slight_smile:

But as far as I know, the answer is NO, Unity does not have native support for scaling particle systems.

I remember reading a couple of posts in the threads the Unity devs were posting in which they were taking feedback from the community, and several people (myself included) mentioned this very problem as something they’d like to see addressed in the future.

I hope the Unity devs implement a way to do this in the 5.x release cycle.