using UnityEngine; using System.Collections.Generic; public class BattleObjectLayerMgr { public BattleObject battleObj; public RendererAdjuster rendererAdjuster; private List effectPlayers = new List(); private bool isFront = true; public BattleObjectLayerMgr() { } public void Init(BattleObject battleObj) { this.battleObj = battleObj; rendererAdjuster = battleObj.heroGo.AddMissingComponent(); } 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; } }