您的位置:首页 > 移动开发 > Unity3D

新 Unity 最新粒子系统如何用代码改变参数

2016-07-20 22:48 399 查看

Unity 最新的用粒子系统用代码控制各项参数

          新的粒子系统api换了不少,采用了很多的结构,原先很多api已经过时,或者更早就没有,网上找了找发小也是少之又少,下面小白就展示一下如何用代码控制各个参数(这里只是一小部分,有兴趣可以自己试试,!!一会百会!!)

  之前无心随便写写,可能写的比较乱,现在重新整理下,我用的unity5.5

   


1.1代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ParticleTest : MonoBehaviour
{
public ParticleSystem particleSys;
ParticleSystem.EmissionModule parEmission;
ParticleSystem.ShapeModule parShape;
//----------------------
ParticleSystem.MinMaxCurve parMinMaxCurve;
void Start()
{
parEmission = particleSys.emission;
parShape = particleSys.shape;
//-----------------
parMinMaxCurve = new ParticleSystem.MinMaxCurve(20);
parEmission.rateOverTime = parMinMaxCurve;
}
void Update()
{
if (Input.GetKeyDown(KeyCode.O))
{
particleSys.Play();
}
if (Input.GetKeyDown(KeyCode.S))
{
particleSys.Stop();
}
if (Input.GetKeyDown(KeyCode.E))
{
SetParEmission(50, 1000);
}
if (Input.GetKeyDown(KeyCode.A))
{
ChangeParEmission(10);
}
if (Input.GetKeyDown(KeyCode.H))
{
SetParShape();
}
}
/// <summary>
/// 设置emission
/// </summary>
private void SetParEmission(float min, float max)
{
//单独设置
//parEmission.rateOverTimeMultiplier = min;
//or parEmission.rateOverDistanceMultiplier = min;
//Curve设置
parEmission.rateOverDistance = new ParticleSystem.MinMaxCurve(min, max);
//or parEmission.rateOverTime = new ParticleSystem.MinMaxCurve(min, max);//设置粒子数量,min10 max100;
}
private void ChangeParEmission(float addRate)
{
parMinMaxCurve.constant += 10;
parEmission.rateOverTime = parMinMaxCurve;
//另一种
//如果设置
//parMinMaxCurve = new ParticleSystem.MinMaxCurve(10,100);
//parEmission.rateOverTime = parMinMaxCurve;
//那么
//if (parMinMaxCurve.constantMin < parMinMaxCurve.constantMax)
//{
// parMinMaxCurve.constantMin += addRate;
// parEmission.rateOverTime = parMinMaxCurve;
//}
}
private void SetParShape()
{
parShape.shapeType = ParticleSystemShapeType.Box;//设置为box形状
parShape.box = new Vector3(2, 2, 2); //设置长宽高
}
}


2:另外新版的例子系统可以让粒子受到WindZone风的影响 ,只需要将External forces打勾勾

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: