In the editor for an emitter I can set two values for a startSpeed for an emitter to randomize the emissions between these two values (i.e. 1.0, 4.0).
How can I do this in script? The ‘startSpeed’ value is just a single float and not a range.
In the editor for an emitter I can set two values for a startSpeed for an emitter to randomize the emissions between these two values (i.e. 1.0, 4.0).
How can I do this in script? The ‘startSpeed’ value is just a single float and not a range.
Are you talking about the ParticleEmitter class? If not, let me know which class you’re dealing with.
If so, it looks like this should do what you want:
ParticleEmitter emitter;
emitter.localVelocity = new Vector3(1.0f, 0, 0); // assuming speed should be in X
emitter.rndVelocity = new Vector3(3.0f, 0, 0); // max of 4.0 total velocity in the X direction
Does this help?
I’ve just come across the same issue. The class is ParticleSystem and the variable is startSpeed.
The answer by kmeboe appears to be referring to the legacy particle system.
In the ParticleSystem class, startSpeed is treated as a variable, yet in the editor, one can set it to operate in modes (e.g. random between two values). What happens when one changes the startSpeed in script when one sets the startSpeed “variable” to random between two values?
In my case, I’m creating a physics demo, and want to show the difference in the scatterring pattern made by a beam of particles that all have the same velocity, and the pattern when the particles in the beam have a range of velocities.
If the emission rate is reasonably low, then the only fix that I can think of is to set a constant startSpeed to near zero, then scan the array of particles being emitted, and brute-force set the initial velocities to be within the desired range.
Good question. The docs say 'if using curves' but don't say how to use curves. Should be a 'startSpeedType' or something. Or startSpeed should be an object, which might be a float or curve or array of floats?
– DaveAUnfortunately this does not help, because the range of values you can set for startSpeed are used to randomize each particles start speed, setting startSpeed in the manner you suggest sets the speed of the emitter so all particles generated will be of that speed.
– chillypacmanDeleted comment (that used to be answer) about using Random to solve your issue. For some reason the site wouldn't let me post a new answer until I deleted that comment! At any rate, it looks like I misunderstood your question. Check below to see if that helps.
– kmeboe