44 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|