using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class HeroPosHeadCell : MonoBehaviour { [SerializeField] HeroHeadBaseCell heroHeadBaseCell; [SerializeField] Image jobImg; [SerializeField] Text nameText; [SerializeField] Transform selectRect; public void Display(int index) { var guid = HeroUIManager.Instance.heroOnTeamSortList[index]; var hero = HeroManager.Instance.GetHero(guid); var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType); selectRect.SetActive(team.GetHero(guid) != null); heroHeadBaseCell.Init(hero.heroId, hero.SkinID, hero.heroStar, hero.awakeLevel, hero.heroLevel, () => { Click(hero, index); }); nameText.text = hero.breakLevel == 0 ? hero.heroConfig.Name : Language.Get("herocardbreaklv", hero.heroConfig.Name, hero.breakLevel); jobImg.SetSprite(HeroUIManager.Instance.GetJobIconName(hero.heroConfig.Class)); } void Click(HeroInfo hero, int index) { //检查是否可上阵,查找上阵位置,显示勾选,飞入上阵位置 var team = TeamManager.Instance.GetTeam(HeroUIManager.Instance.selectTeamType); int pos; if (selectRect.gameObject.activeSelf) { selectRect.SetActive(false); if (team.RemoveHero(hero, out pos)) { //通知刷新(下阵) HeroUIManager.Instance.NotifyOnTeamPosChangeEvent(new List() { pos }, -1, Vector3.zero); } return; } team.AddHero(hero, out pos); if (pos != -1) { selectRect.SetActive(true); //通知刷新,上阵,图片飞入(上阵位置) HeroUIManager.Instance.NotifyOnTeamPosChangeEvent(new List() { pos }, index, heroHeadBaseCell.transform.position); } } }