开发中经常需要对粒子特效的尺寸进行调整以适配具体应用场景,而粒子特效往往由多个粒子系统组件(Particle System
)组成,如果逐一调整尺寸会比较麻烦,粒子特效的尺寸也无法通过父节点的缩放统一修改。
因此可以写一个简单的工具类,快速对粒子特效尺寸进行整体调整,原理也很简单,遍历所有节点的粒子系统组件,并记录其原始缩放值(因为特效在设计阶段为了调整效果已经改过缩放值,默认尺寸下缩放并不一定为1),然后乘上调整的缩放系数,得到新的尺寸。
效果:
代码:
using System.Collections.Generic;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
namespace UnityEngine
{
#if UNITY_EDITOR
[CanEditMultipleObjects, CustomEditor(typeof(ParticleScaler))]
public class ParticleScalerEditor : Editor
{
public override void OnInspectorGUI()
{
var scaler = target as ParticleScaler;
if (scaler == null) return;
base.OnInspectorGUI();
GUILayout.Space(10);
// Quick Scale
GUILayout.BeginHorizontal();
GUI.color = Color.white;
for (var i = 0.25f; i