unity3d通过粒子系统制作火焰效果 | 您所在的位置:网站首页 › 如何制作粒子效果 › unity3d通过粒子系统制作火焰效果 |
unity3d通过粒子系统制作火焰效果
一、制作火焰效果
整体粒子包含部分
为了做出逼真的火焰效果,整体的粒子系统包含以下三个部分 火 火焰系统的主体火星 燃烧产生的颗粒物,在高温下发出红光点光源 火焰燃烧产生的光 火焰主体部分的制作首先,找到合适的粒子贴图,该图是火焰的不同形态,共4帧。 ![]() ![]() ![]() 各模块参数如下: 主模块![]() ![]() ![]() ![]() 为火焰添加一组点光源组件,设置如下: 用代码控制火焰的大小,并模拟火焰受到风的影响。 控制火焰的大小很简单,可以通过改变粒子所受的重力、光源影响的范围和光强、粒子的速率来实现大小火的切换 if(GUI.Button (new Rect (Screen.width-100, Screen.height-100, 65, 40), "大火")){ PointLight = GetComponent(); PointLight.range = 15; PointLight.intensity = 4; ps.Stop(); // Cannot set duration whilst particle system is playing var main = ps.main; main.gravityModifier = -1.3f; main.simulationSpeed = 1.0f; var em = ps.emission; em.rateOverTime = 25; ps.Play(); } if(GUI.Button (new Rect (Screen.width-100, Screen.height-200, 100, 40), "小火")){ PointLight = GetComponent(); PointLight.range = 8; PointLight.intensity = 2; ps.Stop(); // Cannot set duration whilst particle system is playing var main = ps.main; main.gravityModifier = -0.6f; main.maxParticles = 10; main.simulationSpeed = 0.8f; var em = ps.emission; em.rateOverTime = 10; ps.Play(); }为了模拟粒子受到风后的影响,需要改变之前所提到的x方向的力,设置完x方向力后,粒子会向左/右偏移,但是粒子的角度还是垂直向上的。这是由于之前设置的Start Rotation:粒子旋转的弧度为-5到5,因此,为了更加逼真,需要修改Start Rotation的值。起初,我简单的设置Start Rotation的值如下: main.startRotation = new ParticleSystem.MinMaxCurve(40, 50);但当运行时,发现粒子偏转的角度与所想的不一致,并且查看运行时粒子的Start Rotation值,发现值高达几千。查阅资料后,发现: 这是因为startRotation 需要的是一个弧度值,而非角度值,在界面上赋值时, unity会自动把你给的角度值转换为弧度 因此,在代码中需要手动转换弧度和角度。 if( GUI.Button(new Rect(10 , 30 , 50 , 30) , "东风") ){ ps.Stop(); var fo = ps.forceOverLifetime; fo.x = new ParticleSystem.MinMaxCurve(2.5f, 3.5f); //fo.x = 3; var main = ps.main; main.startRotation = new ParticleSystem.MinMaxCurve(-Mathf.PI / 180 * 40, -Mathf.PI / 180 * 50); ps.Play(); } if( GUI.Button(new Rect(10 , 70 , 50 , 30) , "西风") ){ ps.Stop(); var fo = ps.forceOverLifetime; fo.x = new ParticleSystem.MinMaxCurve(-3.5f, -2.5f); //fo.x = -3; var main = ps.main; main.startRotation = new ParticleSystem.MinMaxCurve(Mathf.PI / 180 * 40, Mathf.PI / 180 * 50); ps.Play(); } 运行截图 |
CopyRight 2018-2019 实验室设备网 版权所有 |