NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/Pause/Data/DataEffectPauser.cs

44 lines
1.4 KiB
C#

using System.Collections.Generic;
using Gameplay.Effect;
using UnityEngine;
namespace Gameplay.Pause
{
public class DataEffectPauser
{
public EffectPlayingData effectData;
public readonly List<AnimatorPauser> animPausers;
public readonly List<ParticalPauser> particalPauser;
public DataEffectPauser(EffectPlayingData effectData)
{
this.effectData = effectData;
animPausers = new List<AnimatorPauser>();
particalPauser = new List<ParticalPauser>();
// 找到动画
var anims = effectData.rootObj.GetComponentsInChildren<Animator>();
for (var i = 0; i < anims.Length; ++i)
{
var anim = anims[i];
var pauser = new AnimatorPauser(anim);
pauser.owner = effectData.owner;
pauser.isEffect = true;
animPausers.Add(pauser);
}
// 找到粒子特效
var particals = effectData.rootObj.GetComponentsInChildren<ParticleSystem>();
for (var i = 0; i < particals.Length; ++i)
{
var partical = particals[i];
var pauser = new ParticalPauser(partical);
pauser.owner = effectData.owner;
pauser.isEffect = true;
particalPauser.Add(pauser);
}
}
}
}