Unity 动态改变整个粒子特效缩小放大

1.在粒子特效最上层添加 PSScale 这个脚本,面板上更改这个psScaleFloat,代码很简单我就不写注释了

Unity 动态改变整个粒子特效缩小放大_第1张图片

 

2. 鼠标左键点一下更改粒子大小

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

public class PSScale : MonoBehaviour {

     ParticleSystem[] ps;
    public float psScaleFloat = 0.5f;

	void Update () {
        if (Input.GetMouseButtonDown(0))
        {
            foreach (var item in transform.GetComponentsInChildren())
            {
                var main = item.main;
                main.scalingMode = ParticleSystemScalingMode.Local;
                item.transform.localScale = new Vector3(psScaleFloat, psScaleFloat, psScaleFloat);
            }
        }
	}
}

3.效果图

Unity 动态改变整个粒子特效缩小放大_第2张图片

 

再补充一下下哦,上面是在游戏运行中修改的粒子系统大小,运行停止粒子系统又回去了原来的大小,有时候我们不希望粒子系统在变回去以前大小,那么我们可以这样做,利用 Reset 函数,初始化这个粒子系统大小就好了,这个函数就是 你将这个脚本拖拽到游戏对象身上,不需要运行场景,这个脚本也会运行一次这个Reset函数,GoodLucky

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

public class PSScale : MonoBehaviour {

     ParticleSystem[] ps;
    public float psScaleFloat = 0.1f;

	void Reset () {
            foreach (var item in transform.GetComponentsInChildren())
            {
                var main = item.main;
                main.scalingMode = ParticleSystemScalingMode.Local;
                item.transform.localScale = new Vector3(psScaleFloat, psScaleFloat, psScaleFloat);
                Debug.Log("------------->");
            }
        }	
}

 

你可能感兴趣的:(unity)