using System.Collections; using System.Collections.Generic; using UnityEngine; public class teamSettingPanel : MonoBehaviour { [SerializeField] public GameObject teamSettingPanelObj; [SerializeField] public GameObject[] teamElementsObj; [SerializeField] public GameObject[] teamCharactersObj; private TeamManager teamManager; public static teamSettingPanel Instance{get;private set;} void Awake() { if (Instance == null) { Instance = this; } else { Destroy(gameObject); } } void Start() { teamManager = TeamManager.Instance; if(teamManager!=null) { teamManager.OnSelectedCharacterChanged += updateTeamCharacterSelectedStatus; } } void OnDestroy() { if (teamManager != null) { teamManager.OnSelectedCharacterChanged -= updateTeamCharacterSelectedStatus; } } public void openTeamSettingPanel() { Debug.Log("打开编队设置面板"); //todo:向teamManager拉取已有编队信息,把视图初始化为对应的编队信息 List currentTeam = teamManager.getCurrentTeam(); foreach (Character character in currentTeam) { } //根据获取的队伍信息处理ui组件 //可在此补充ui动画信息 teamSettingPanelObj.SetActive(true); } public void closeTeamSettingPanel()=>teamSettingPanelObj.SetActive(false); public void updateTeamSettingElements() { //todo:向保存编队信息的类获取编队信息,然后重新处理teamElementsObj的信息 } /// /// 将当前角色向下交换位置 /// public void downChangeCharcterIndex() { } public void upChangeCharcterIndex() { } /// /// 用于保证team内对象的选中状态一致 /// public void updateTeamCharacterSelectedStatus() { int currentSelectedCharacter = teamManager.currentSelectedCharacter; Debug.Log(currentSelectedCharacter+" "+$"{teamElementsObj.Length}"); for (int i = 0; i < teamElementsObj.Length; i++) { if (i != currentSelectedCharacter) { teamCharacterView teamCharacterView = teamElementsObj[i].GetComponent(); if(teamCharacterView!=null) { teamCharacterView.SetUnSelected(); } } } } }