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; 
 | 
    } 
 | 
} 
 |