简单例子系统制作
一、任务要求
- 按参考资源要求,制作一个粒子系统,参考资料
- 使用 3.3 节介绍,用代码控制使之在不同场景下效果不一样
二、实现效果
三、程序实现
3.1 实现下雪作为背景
- 首先新建一个粒子系统
- 设置对应的Shape模块
- 设置Shape为Box,即为设定发射器为一个方形发射器:
- 然后我们设定这个发射器的形状,把它做成我们要的方形即可
- 设定Particle System Main模块
- 我们设定StartLifetime = 5 ,即为粒子系统的生命周期
- StartSpeed = 5 初始速度
- Startsize , 初始大小
- 其余选项默认即可
- Emission模块:
- RateOvertime:设定每秒发射的例子数
- Render模块:保持默认即可
3.2 实现火焰效果
新建粒子系统
- 我们火焰效果需要的模块如下所示:
Main模块
- StartLifetime:5 设定存活时间
- StartSpeed:0 ,因为我们要实现火焰,所以我们不要初速度,在其他部分增加速度
- StartRotation:0 360,这里我们选用随机模式,在0°和360°之间随机,来模拟火焰效果
- 其他部分默认即可
Emission
- Rateovertime:我们使用默认的一秒十个即可
Shape
- Shape:Sphere 设定为我们火焰需要的模型
- Radius:0.1 为了实现火焰的聚拢效果,越小越集中
- 其余默认即可
Velocity OverLifeTime
- 设定粒子的收到的速度
- Linear Y:0.1 , 因为是火焰,要受到向上的力
Force OverLifeTime
- 设定收到的力,这里注意要设定world坐标
Color OverLifeTime
- 设定了粒子系统的颜色,我们设定它是一个类似火焰的渐变色(这里可以自己选用自己喜欢的颜色
SizeOverLifetime
- 实现类似火苗的形状,所以我们令其逐渐变小
Render
- 默认即可
代码控制火苗风向
- 我们只要在代码中增加一个x轴方向的Force
public void LeftWind()
{
ParticleSystem.MinMaxCurve temp = forceMode.x;
temp.constantMax += -0.3f;
forceMode.x = temp;
}
public void RightWind()
{
ParticleSystem.MinMaxCurve temp = forceMode.x;
temp.constantMax += 0.3f;
forceMode.x = temp;
}