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