How to apply emitter velocity to particles.
#pragma strict private var ps: ParticleSystem; public var enabled: boolean = true; public var hSliderValue: float = 5.0f; public var inheritMode: ParticleSystemInheritVelocityMode; function Start() { ps = GetComponent.<ParticleSystem>(); var main: var = ps.main; main.simulationSpace = ParticleSystemSimulationSpace.World; // add a sphere so we can see our transform position as it moves var sphere: var = GameObject.CreatePrimitive(PrimitiveType.Sphere); sphere.transform.parent = ps.transform; } function Update() { var inheritVelocity: var = 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); } function 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 = ParticleSystemInheritVelocityModeGUI.SelectionGrid(new Rect(25, 125, 300, 30), intinheritMode, [new GUIContent("Initial"), new GUIContent("Current")], 2); }
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); } }