更改随距离变化速率乘数。
如果只想更改整体速率乘数,则此方法比访问整条曲线更加高效。
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour
{
private ParticleSystem ps;
public float hSliderValue = 5.0f;
void Start()
{
ps = GetComponent<ParticleSystem>();
var main = ps.main;
main.simulationSpace = ParticleSystemSimulationSpace.World; // rate over distance only works for world space simulations
var shape = ps.shape;
shape.enabled = false;
var emission = ps.emission;
emission.rateOverTime = 0.0f;
// 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 emission = ps.emission;
emission.rateOverDistanceMultiplier = hSliderValue;
ps.transform.position = new Vector3(Mathf.Sin(Time.time) * 2.0f, 0.0f, 0.0f);
}
void OnGUI()
{
hSliderValue = GUI.HorizontalSlider(new Rect(25, 45, 100, 30), hSliderValue, 1.0f, 20.0f);
}
}