| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using UnityEngine; |
| | | |
| | | public class BattleEffectMgr : MonoBehaviour |
| | |
| | | { |
| | | if (effectId <= 0) |
| | | { |
| | | BattleDebug.LogError("effect id <= 0"); |
| | | return null; |
| | | } |
| | | |
| | | var effectCfg = EffectConfig.Get(effectId); |
| | | if (null == effectCfg) |
| | | { |
| | | BattleDebug.LogError("effect config is null, effectId : " + effectId); |
| | | return null; |
| | | } |
| | | |
| | |
| | | effectDict[effectId] = new List<BattleEffectPlayer>(); |
| | | } |
| | | |
| | | BattleEffectPlayer effectPlayer = BattleEffectPlayer.Create(effectId, parent); |
| | | BattleEffectPlayer effectPlayer = BattleEffectPlayer.Create(effectId, battleField.battleRootNode.transform); |
| | | effectPlayer.transform.position = parent.position; |
| | | float effectScale = parent.transform.localScale.x; |
| | | effectPlayer.transform.localScale *= effectScale; |
| | | effectPlayer.onDestroy += OnEffectDestroy; |
| | | if (effectPlayer != null) |
| | | { |
| | | effectDict[effectId].Add(effectPlayer); |
| | | } |
| | | effectPlayer.Play(true); |
| | | return effectPlayer; |
| | | } |
| | | |
| | |
| | | } |
| | | else |
| | | { |
| | | Debug.LogError("could not find effect in list, effectid : " + effectId); |
| | | BattleDebug.LogError("could not find effect in list, effectid : " + effectId); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | public void HaveRest() |
| | | { |
| | | foreach (KeyValuePair<int, List<BattleEffectPlayer>> kvPair in effectDict) |
| | | List<int> fKeys = effectDict.Keys.ToList(); |
| | | |
| | | for (int i = 0; i < fKeys.Count; i++) |
| | | { |
| | | foreach (BattleEffectPlayer effectPlayer in kvPair.Value) |
| | | List<BattleEffectPlayer> effectPlayers = effectDict[fKeys[i]]; |
| | | while (effectPlayers.Count > 0) |
| | | { |
| | | var effectPlayer = effectPlayers[0]; |
| | | if (effectPlayer != null) |
| | | { |
| | | GameObject.DestroyImmediate(effectPlayer.gameObject); |
| | | } |
| | | else |
| | | { |
| | | effectPlayers.RemoveAt(0); |
| | | } |
| | | } |
| | | } |
| | | |
| | | effectDict.Clear(); |
| | | } |
| | | |