完成编队预设切换、编队位置交换、队长设置功能
This commit is contained in:
@@ -18,6 +18,10 @@ public class teamSettingPanel : MonoBehaviour
|
||||
[SerializeField]
|
||||
public GameObject[] teamElementsObj;
|
||||
/// <summary>
|
||||
/// 编队显示上层切换编队预设按钮
|
||||
/// </summary>
|
||||
[SerializeField] public TeamIndexSetterView[] teamSettingButtonStatusObj;
|
||||
/// <summary>
|
||||
/// team用角色数据库总表
|
||||
/// </summary>
|
||||
[SerializeField]
|
||||
@@ -58,6 +62,9 @@ public class teamSettingPanel : MonoBehaviour
|
||||
if(teamManager!=null)
|
||||
{
|
||||
teamManager.OnSelectedCharacterChanged += updateTeamCharacterSelectedStatus;
|
||||
|
||||
teamManager.OnSelectedTeamChanged += updateTeamSettingSelectedStatus;
|
||||
teamManager.OnSelectedTeamChanged += updateTeamSettingElements;
|
||||
}
|
||||
updateTeamSettingElements();
|
||||
updateSelectableCharacterViewList();
|
||||
@@ -69,48 +76,20 @@ public class teamSettingPanel : MonoBehaviour
|
||||
if (teamManager != null)
|
||||
{
|
||||
teamManager.OnSelectedCharacterChanged -= updateTeamCharacterSelectedStatus;
|
||||
|
||||
teamManager.OnSelectedTeamChanged -= updateTeamSettingSelectedStatus;
|
||||
teamManager.OnSelectedTeamChanged -= updateTeamSettingElements;
|
||||
}
|
||||
}
|
||||
// public void openTeamSettingPanel()
|
||||
// {
|
||||
// //根据获取的队伍信息处理ui组件
|
||||
// //可在此补充ui动画信息
|
||||
// StartCoroutine(UpdateTeamSettingAfterOneFrame());
|
||||
// // updateTeamSettingElements();
|
||||
// StartCoroutine(UpdateSelectableCharacterAfterOneFrame());
|
||||
// teamSettingPanelObj.SetActive(true);
|
||||
// // getSelectableCharacterList();
|
||||
// }
|
||||
// public void closeTeamSettingPanel()
|
||||
// {
|
||||
// teamSettingPanelObj.SetActive(false);
|
||||
// }
|
||||
private IEnumerator UpdateTeamSettingAfterOneFrame()
|
||||
/// <summary>
|
||||
/// 切换预设编队
|
||||
/// </summary>
|
||||
/// <param name="index"></param>
|
||||
public void updateSelectedTeam(int index)
|
||||
{
|
||||
yield return null;
|
||||
|
||||
teamManager.setCurrentSelectedTeam(index);
|
||||
updateTeamSettingElements();
|
||||
foreach (var obj in teamElementsObj)
|
||||
{
|
||||
if (obj != null)
|
||||
{
|
||||
var t = obj.GetComponent<teamCharacterView>();
|
||||
if (t != null && t.charcterImg != null)
|
||||
{
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(t.charcterImg.rectTransform);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private IEnumerator UpdateSelectableCharacterAfterOneFrame()
|
||||
{
|
||||
yield return null;
|
||||
|
||||
updateSelectableCharacterViewList();
|
||||
RectTransform rt = teamCharacterViewContent.GetComponent<RectTransform>();
|
||||
LayoutRebuilder.ForceRebuildLayoutImmediate(rt);
|
||||
}
|
||||
|
||||
public TeamCharacterDataInfo getCharacterViewInfo(int characterID)
|
||||
{
|
||||
if (teamCharacterList == null)
|
||||
@@ -152,32 +131,76 @@ public class teamSettingPanel : MonoBehaviour
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 把队列恢复到空视图状态
|
||||
/// </summary>
|
||||
public void clearTeamSettingElements()
|
||||
{
|
||||
foreach (GameObject gameObject in teamElementsObj)
|
||||
{
|
||||
teamCharacterView t = gameObject.GetComponent<teamCharacterView>();
|
||||
if (t != null)
|
||||
{
|
||||
t.characterID = -1;
|
||||
t.charcterImg.sprite = null;
|
||||
t.charcterImg.color=new Color(t.charcterImg.color.r,t.charcterImg.color.g,t.charcterImg.color.b,0f);
|
||||
t.levelIcon.sprite = null;
|
||||
t.levelIcon.color=new Color(t.levelIcon.color.r,t.levelIcon.color.g,t.levelIcon.color.b,0f);
|
||||
t.skillName.text="";
|
||||
t.isLeader.SetActive(false);
|
||||
t.notLeader.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
public void updateTeamSettingElements()
|
||||
{
|
||||
TeamSetting currentSelectedTeam = teamManager.getCurrentSelectedTeam();
|
||||
List<CharacterView> currentTeam = currentSelectedTeam.teamIdList;
|
||||
// if(currentTeam==null||currentTeam.Count==0)
|
||||
// {
|
||||
// clearTeamSettingElements();
|
||||
// return;
|
||||
// }
|
||||
clearTeamSettingElements();
|
||||
for (int i = 0; i < teamElementsObj.Length && i < currentTeam.Count; i++)
|
||||
{
|
||||
if(teamElementsObj[i]!=null && currentTeam[i]!=null)
|
||||
{
|
||||
//Debug.Log($"当前元素为第{i},当前角色为{currentTeam[i].characterId}");
|
||||
teamCharacterView t = teamElementsObj[i].GetComponent<teamCharacterView>();
|
||||
if(t!=null)
|
||||
{
|
||||
t.characterID= currentTeam[i].characterId;
|
||||
TeamCharacterDataInfo tcdi = getCharacterViewInfo(t.characterID);
|
||||
if (tcdi != null)
|
||||
{
|
||||
t.charcterImg.sprite = tcdi.CharacterTeamSprite;
|
||||
t.charcterImg.color=new Color(t.charcterImg.color.r,t.charcterImg.color.g,t.charcterImg.color.b,255f);
|
||||
|
||||
t.charcterImg.sprite = tcdi.CharacterTeamSprite;
|
||||
t.charcterImg.color=new Color(t.charcterImg.color.r,t.charcterImg.color.g,t.charcterImg.color.b,255f);
|
||||
t.levelIcon.sprite = getLevelSprite(currentTeam[i].currentBoundaryLevel);
|
||||
t.levelIcon.color=new Color(t.levelIcon.color.r,t.levelIcon.color.g,t.levelIcon.color.b,255f);
|
||||
t.skillName.text = tcdi.CharacterSkillName;
|
||||
}
|
||||
else
|
||||
{
|
||||
t.charcterImg.sprite = null;
|
||||
t.charcterImg.color=new Color(t.charcterImg.color.r,t.charcterImg.color.g,t.charcterImg.color.b,0f);
|
||||
t.levelIcon.sprite = null;
|
||||
t.levelIcon.color=new Color(t.levelIcon.color.r,t.levelIcon.color.g,t.levelIcon.color.b,0f);
|
||||
t.skillName.text="";
|
||||
}
|
||||
|
||||
t.levelIcon.sprite = getLevelSprite(currentTeam[i].currentBoundaryLevel);
|
||||
t.levelIcon.color=new Color(t.levelIcon.color.r,t.levelIcon.color.g,t.levelIcon.color.b,255f);
|
||||
if(currentSelectedTeam.LeaderId==currentTeam[i].characterId)
|
||||
{
|
||||
Debug.Log($"当前队长为{currentTeam[i].characterId} {currentTeam[i].currentBoundaryLevel},存档信息为{currentSelectedTeam.LeaderId}");
|
||||
t.isLeader.SetActive(true);
|
||||
t.notLeader.SetActive(false);
|
||||
}
|
||||
t.skillName.text = tcdi.CharacterSkillName;
|
||||
else
|
||||
{
|
||||
t.isLeader.SetActive(false);
|
||||
t.notLeader.SetActive(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -205,17 +228,6 @@ public class teamSettingPanel : MonoBehaviour
|
||||
ccv.occupationIcon.sprite = tcdi.CharacterRoleSprite;
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 将当前角色向下交换位置
|
||||
/// </summary>
|
||||
public void downChangeCharcterIndex()
|
||||
{
|
||||
|
||||
}
|
||||
public void upChangeCharcterIndex()
|
||||
{
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 用于保证team内对象的选中状态一致
|
||||
@@ -223,7 +235,7 @@ public class teamSettingPanel : MonoBehaviour
|
||||
public void updateTeamCharacterSelectedStatus()
|
||||
{
|
||||
int currentSelectedCharacter = teamManager.currentSelectedCharacter;
|
||||
Debug.Log(currentSelectedCharacter+" "+$"{teamElementsObj.Length}");
|
||||
Debug.Log($"当前选择为{currentSelectedCharacter}");
|
||||
for (int i = 0; i < teamElementsObj.Length; i++)
|
||||
{
|
||||
if (i != currentSelectedCharacter)
|
||||
@@ -234,6 +246,49 @@ public class teamSettingPanel : MonoBehaviour
|
||||
teamCharacterView.SetUnSelected();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
teamCharacterView teamCharacterView = teamElementsObj[i].GetComponent<teamCharacterView>();
|
||||
teamCharacterView.SetSelected();
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 右切换编队信息
|
||||
/// </summary>
|
||||
public void rightChangeTeamSettingIndex()
|
||||
{
|
||||
int currentSelectedTeam = teamManager.currentSelectedTeam;
|
||||
if (currentSelectedTeam < 4)
|
||||
{
|
||||
teamManager.setCurrentSelectedTeamSetting(currentSelectedTeam + 1);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 左切换编队信息
|
||||
/// </summary>
|
||||
public void leftChangeTeamSettingIndex()
|
||||
{
|
||||
int currentSelectedTeam = teamManager.currentSelectedTeam;
|
||||
if(currentSelectedTeam>0)
|
||||
{
|
||||
teamManager.setCurrentSelectedTeamSetting(currentSelectedTeam - 1);
|
||||
}
|
||||
}
|
||||
public void updateTeamSettingSelectedStatus()
|
||||
{
|
||||
int currentSelectedTeam = teamManager.currentSelectedTeam;
|
||||
for(int i= 0;i<teamSettingButtonStatusObj.Length;i++)
|
||||
{
|
||||
if(i!=currentSelectedTeam)
|
||||
{
|
||||
teamSettingButtonStatusObj[i].setUnSelectedTeamSetting();
|
||||
}
|
||||
else
|
||||
{
|
||||
teamSettingButtonStatusObj[i].setTeamSettingSelect();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user