本文主要是介绍unity 2017.3 动态修改粒子特效参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在各类项目中,我们都会经常的使用粒子特效,虽然大多数时候是美工提供完整的特效,但是个别情况下,我们还是需要根据实际情况去动态的修改特效的某个或多个参数。
第一步,我们需要先获取到粒子组件。
我们可以公开一个GameObject的字段来获取这个对象,或者是去Find对象,当然直接挂在它身上也可以。
第二步,我们需要获取到这个组件,直接GetComponent<ParticleSystem>()就好了。
第三步,这里比较容易出问题。
两种不同的写法有不同的结果,第一次写的时候遇到了这个问题,然后我就去看了一眼元数据,
这样就可以看出问题所在了,如果直接去 . 的话,只能找到.shape,而.ShapeModule才是真正包含.angle的结构体,所以还必须经过一步获取到ShapeModule。
完整代码如下:
using UnityEngine;public class LaserAnimation : MonoBehaviour {public GameObject laser;private ParticleSystem L;ParticleSystem.ShapeModule A;// 初始化时执行void Start () {L = laser.GetComponent<ParticleSystem>();A = L.shape;}// 固定时间执行 Edit - Project Setting - time Fixed timestep=0.02 void FixedUpdate () {if(A.angle<2)A.angle += 1f*Time.deltaTime ;}
这篇关于unity 2017.3 动态修改粒子特效参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!