using EPOOutline; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public enum OutLineType { hover, //划过 select,//选中 hint, //提示 } public class OutLineManager : MonoSingleton { private OutLinePrefabGroup outLinePrefabGroup; public OutLinePrefabGroup OutLinePrefabGroup { get { if (outLinePrefabGroup == null) { outLinePrefabGroup = Resources.Load("OutLinablePrefab"); } return outLinePrefabGroup; } } void Awake() { if(Camera.main!=null&&Camera.main.GetComponent()==null) { Camera.main.gameObject.AddComponent(); } } public void ResetOutLinableByType(Outlinable outlinable, OutLineType type) { Outlinable prefab = GetOutLinablePrefan(type); //outlinable.AddAllChildRenderersToRenderingList(); outlinable.ComplexMaskingMode = prefab.ComplexMaskingMode; outlinable.DrawingMode = prefab.DrawingMode; outlinable.OutlineLayer = prefab.OutlineLayer; outlinable.RenderStyle = prefab.RenderStyle; outlinable.BackParameters.DilateShift = prefab.BackParameters.DilateShift; outlinable.BackParameters.BlurShift = prefab.BackParameters.BlurShift; outlinable.BackParameters.Color = prefab.BackParameters.Color; outlinable.BackParameters.SetFillPass(prefab.BackParameters.FillPass); outlinable.FrontParameters.DilateShift = prefab.FrontParameters.DilateShift; outlinable.FrontParameters.BlurShift = prefab.FrontParameters.BlurShift; outlinable.FrontParameters.Color = prefab.FrontParameters.Color; outlinable.FrontParameters.SetFillPass(prefab.FrontParameters.FillPass); } public Outlinable GetOutLinablePrefan(OutLineType type) { if (OutLinePrefabGroup.dic_OutLinePrefabs.ContainsKey(type)) { return OutLinePrefabGroup.dic_OutLinePrefabs[type]; } return null; } void OnDestroy() { if(outLinePrefabGroup != null) { Destroy(outLinePrefabGroup); } } }