Unity粒子特效制作(unity 粒子特效)
unity3d在代码中怎样控制粒子特效的重新播放与停止?答案最好详细点,可以加分
通过粒子系统的Simulate方法来模拟对应时间的粒子状态来完成效果,控制粒子特效的重新播放与停止。具体操作如下:
1、首先下段代码比如对于Legacy粒子,使Emitter在timeScale=0停止时继续有效发射并显示效果。
2、给cube2加上了针对粒子的一个代码,在timeScale?=0的情况下,特效可以顺利正常播放,其他都还是暂停的。
3、然后给一个空对象,绑定了一个代码,来控制粒子特效也同样不受影响,暂停的效果依然是暂停的。
4、当点击停止按钮时timeScale?=0,全部停止了或者点击重新开始如下图。
如何制作unity激光粒子特效
据我所知,一些特效其实也是粒子系统,只不过做得很好。
可以试试看将特效先设置为一个预设物,然后设置预设物的动作(如各一个推力等等)就可以了。
如果没有理解题意或者回答有问题,请看到的人告诉我一下,。
Unity UI通过Mask裁切粒子特效
在项目中使用ScrollView来滑动Item,然后item上挂着特效,这个时候如果滑动区域到达mask区域外,item里的图片信息被裁切隐藏,但是特效不会就想做一个把特效一起裁切掉的方法。
首先我们要知道图片信息是怎么被mask裁切掉的。
图片被裁切主要是Material信息里增加了Stencil信息。
这样在UI绘制的时候就会进行模板测试。这里就不具体介绍模板测试了,就只是简单讲述一下。
模板测试就好比一个画出一个矩形,渲染的时候会对矩形里的像素点进行测试,只有满足模板条件的像素点才能保留,不满足的像素点将被抛弃掉。
现在我们只需要按照裁切图片信息的想法去让特效也被裁切掉就好了。
当我们的特效加上上来后,先是获取Canvas,在获取他的StencilDepth,当StencilDepth大于0,修改特效原本的Material成我们特制的就好啦。
将上面的脚本加载在我们的粒子上,运行游戏的时候有可能会出现下面的情况
这个提示是因为我们这个粒子的shader上缺少stencil方面的变量,只需要在对应的shader里添加就可以了。
添加完后可以查看shader变量里会有这个几个,这样才可以成功的添加Stencil信息。
如果你做到这步你的粒子还是没有正确的被裁切,需要在粒子中选择Render里的Masking选择 Visible inside Mask
如果上一步操作后你还是没有看到你的粒子显示在正确的区域内,你可以设置粒子的sort值。
本质上其实这里的裁切就是让特效去参与模板测试从而达到我们想要的裁切效果。
Unity特效基础——粒子系统
粒子系统最早出现在20世纪80年代,主要用于解决由大量按一定规则运动(变化)的微小物质在计算机上的生成和显示问题。它的应用非常广泛,大的可以模拟原子弹爆炸、星云变化,小的可以模拟水波、火焰、烟火、云雾等,而这些自然现象用常规的图形算法是很难逼真再现的。粒子运动的变化规则可以很简单也可以很复杂,这取决所模拟的对象。
在unity中创建粒子系统有三种方式:
(使用这三种方式创建的粒子系统完全相同)
在层级视图中选择之前创建的Particle System(粒子系统),可以发现在Scene场景视图中右下角多了一个控制窗口,如图3-1所示。
Unity默认的粒子系统有四种数字修改类型,可以通过单击数值后面的三角符号进行切换。以start size为例,如图4-1所示。
1.粒子系统的颜色控制
以粒子系统中的Start color为例,单击Start Color(初始颜色)后的白色块,如图5-1所示:
单击后会显示颜色编辑器,如图所示。
通过单击(RGB0-255)下拉箭头切换颜色模式,有RGB、HSV两种模式。
RGB模式是根据三原色的占比来设置最终颜色,而HSV是根据色彩三要素色相,饱和度和明度来设置颜色。
2.颜色渐变坡度控制
以Color over lifetime(生命周期颜色)之中的颜色编辑器设置为例,如图5-2所示。
选择了Gradient之后单击色块,进入颜色编辑器:
一个粒子系统由多个模块整合而成,如图所示。
1.Duration(持续时间):粒子发射器发射粒子的持续时间,单位为秒。
2.Looping(循环):是否开启循环。
3.Prewarm(预热):预热开启后,粒子系统将会直接播放一个周期后的状态,不会显示有少到多的逐渐产生过程。
4.Start Delay(初始延迟):发射粒子前,等待延迟的时间,单位为秒。
5.Start Lifetime(初始生命周期):粒子的存活时间,单位为秒。
6.Start Speed(初始速度):粒子发射时的速度。
7.Start Size(初始大小):粒子发射时的初始大小。
8.3D Start Rotation(3D坐标旋转):可以设置粒子发射时的3D初始旋转。
9.Start Rotation(初始旋转):设置粒子发射时正面的初始旋转。(粒子系统的贴图默认都是只有正面朝向摄像机来渲染的,所以默认情况下只有一个方向的旋转)
10.Flip Rotation(翻转旋转):设置粒子发射时的翻转旋转。
11.Start Color(初始颜色):粒子发射时的颜色。
12.Gravity Modifier(重力修改器):粒子在生命周期内收到重力的影响。
13.Simulation Space(模拟空间):局部坐标系或者世界坐标系。
14.Play on Awake(唤醒时播放):如果启用该项,粒子会在Gameobject唤醒时(在Start方法执行之前)自动播放。
15.Max Particles(最大粒子数):粒子系统中的最大粒子数量。
列出了常用的一些粒子属性说明,还有部分未列出,可以根据需要查阅相关的文档。
想要掌握粒子系统的使用,只是从字面上理解属性是没办法做到的,在后面的文章中我们将会学习到如何使用粒子系统创建一些特定的效果。
unity 按键 触发粒子特效?
1.创建脚本,写入这些并保存:
public ParticleSystem pars;
private void Update()
{
if (Input.GetKey(KeyCode.Alpha1))
pars.Play(); //或者 pars.gameObject.SetActive(true);
}
2.把脚本挂到某个对象上,把那个有粒子的物体拖到脚本的Pars框里。
(将原先的粒子系统中“唤醒时播放”取消勾选。但如果是要出现,而不是播放,则不必进行该操作)
4.运行。
5.按下数字键1时,粒子播放或出现。