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(rendererAdjuster.sortingOrder); } } 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); } int order = isFront ? BattleConst.ActiveHeroSortingOrder : BattleConst.UnactiveHeroSortingOrder; SetSortingOrder(order); } }