| using UnityEngine; | 
| using System.Collections.Generic; | 
|   | 
| public class BattleObjectLayerMgr | 
| { | 
|     public BattleObject battleObj; | 
|   | 
|     public RendererAdjuster rendererAdjuster; | 
|   | 
|     private List<BattleEffectPlayer> effectPlayers = new List<BattleEffectPlayer>(); | 
|   | 
|     private bool isFront = true; | 
|   | 
|     public BattleObjectLayerMgr() | 
|     { | 
|   | 
|     } | 
|   | 
|     public void Init(BattleObject battleObj) | 
|     { | 
|         this.battleObj = battleObj; | 
|         rendererAdjuster = battleObj.heroGo.AddMissingComponent<RendererAdjuster>(); | 
|     } | 
|   | 
|     public void SetSortingOrder(int sortingOrder) | 
|     { | 
|         if (rendererAdjuster != null) | 
|         { | 
|             rendererAdjuster.SetSortingOrder(sortingOrder); | 
|         } | 
|     } | 
|   | 
|     public void AddEffect(BattleEffectPlayer effectPlayer) | 
|     { | 
|         if (effectPlayer != null && !effectPlayers.Contains(effectPlayer)) | 
|         { | 
|             effectPlayers.Add(effectPlayer); | 
|         } | 
|         effectPlayer.SetSortingOrder(IsFront); | 
|     } | 
|   | 
|     public void RemoveEffect(BattleEffectPlayer effectPlayer) | 
|     { | 
|         if (effectPlayers.Contains(effectPlayer)) | 
|         { | 
|             effectPlayers.Remove(effectPlayer); | 
|         } | 
|     } | 
|   | 
|     public void SetFront() | 
|     { | 
|         isFront = true; | 
|         UpdateLayer(); | 
|     } | 
|   | 
|     public void SetBack() | 
|     { | 
|         isFront = false; | 
|         UpdateLayer(); | 
|     } | 
|   | 
|     public void UpdateLayer() | 
|     { | 
|         for (int i = 0; i < effectPlayers.Count; i++) | 
|         { | 
|             effectPlayers[i].SetActive(isFront); | 
|         } | 
|         //  策划要在释放技能的时候 其他角色隐藏 这里在back的时候就直接设置成0  在最底下 看不到的地方 | 
|         int order = isFront ? BattleConst.ActiveHeroSortingOrder : 0; //BattleConst.UnactiveHeroSortingOrder; | 
|         SetSortingOrder(order); | 
|     } | 
|   | 
|     public bool IsFront() | 
|     { | 
|         return isFront; | 
|     } | 
| } |