1
0
Fork 0
LaboratoryProtection/Assets/UnityTest/ZXL/Scripts/Effect/EffectManager.cs

75 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
namespace UnityTest.ZXL
{
public class EffectManager : BaseAutoMono<EffectManager>
{
public List<EffectData> effectDatas = new List<EffectData>();
private void Start()
{
HideAllEffect();
}
public void ShowOrHideEffect(EffectType effectType, bool isShow)
{
foreach (var effectData in effectDatas)
{
if (effectData.Check(effectType))
{
effectData.effect.SetActive(isShow);
break;
}
}
}
public void HideAllEffect()
{
foreach (var effectData in effectDatas)
{
effectData.effect.SetActive(false);
}
}
public bool isEditor;
#if UNITY_EDITOR
[ShowIf("isEditor")]
[Button]
void Add()
{
effectDatas.Clear();
var effectComponents = transform.GetComponentsInChildren<EffectComponent>();
foreach (var effectComponent in effectComponents)
{
effectDatas.Add(effectComponent.effectData);
}
}
#endif
}
[System.Serializable]
public class EffectData
{
public EffectType effectType;
public GameObject effect;
public bool Check(EffectType effectType)
{
return this.effectType == effectType;
}
}
[System.Serializable]
public enum EffectType
{
,
,
,
,
,
,
}
}