Change the curve multiplier.
This method is more efficient than accessing the whole curve, if you only want to change the overall curve multiplier.
no example available in JavaScript
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour {
private ParticleSystem ps; public bool enabled = true; public float hSliderValue = 5.0f; public ParticleSystemInheritVelocityMode inheritMode;
void Start() { ps = GetComponent<ParticleSystem>();
var main = ps.main; main.simulationSpace = ParticleSystemSimulationSpace.World; // rate over distance only works for world space simulations
// add a sphere so we can see our transform position as it moves var sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere); sphere.transform.parent = ps.transform; }
void Update() { var inheritVelocity = ps.inheritVelocity; inheritVelocity.enabled = enabled; inheritVelocity.curveMultiplier = hSliderValue; inheritVelocity.mode = inheritMode;
ps.transform.position = new Vector3(Mathf.Sin(Time.time * 2.0f) * 2.0f, 0.0f, 0.0f); }
void OnGUI() { enabled = GUI.Toggle(new Rect(25, 45, 100, 30), enabled, "Enabled"); hSliderValue = GUI.HorizontalSlider(new Rect(25, 85, 100, 30), hSliderValue, 0.0f, 10.0f); inheritMode = (ParticleSystemInheritVelocityMode)GUI.SelectionGrid(new Rect(25, 125, 300, 30), (int)inheritMode, new GUIContent[] { new GUIContent("Initial"), new GUIContent("Current") }, 2); } }