2023-09-19 15:25:22 +08:00
|
|
|
|
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
|
|
|
|
|
{
|
|
|
|
|
光度计爆炸特效,
|
|
|
|
|
光度计烟雾特效,
|
|
|
|
|
光度计持续燃烧特效,
|
2023-09-24 11:28:47 +08:00
|
|
|
|
喷水特效,
|
|
|
|
|
乙炔气瓶燃烧特效,
|
|
|
|
|
喷雾特效,
|
2023-09-19 15:25:22 +08:00
|
|
|
|
}
|
|
|
|
|
}
|