队伍角色添加、快速更换新位置完善

This commit is contained in:
2025-06-14 02:59:23 +08:00
parent 9d483f4aa5
commit cabf567390
6 changed files with 261 additions and 27 deletions
+23 -12
View File
@@ -65,6 +65,7 @@ public class teamSettingPanel : MonoBehaviour
teamManager.OnSelectedTeamChanged += updateTeamSettingSelectedStatus;
teamManager.OnSelectedTeamChanged += updateTeamSettingElements;
teamManager.OnSelectedTeamChanged += updateSelectableCharacterViewList;
}
updateTeamSettingElements();
updateSelectableCharacterViewList();
@@ -79,6 +80,7 @@ public class teamSettingPanel : MonoBehaviour
teamManager.OnSelectedTeamChanged -= updateTeamSettingSelectedStatus;
teamManager.OnSelectedTeamChanged -= updateTeamSettingElements;
teamManager.OnSelectedTeamChanged -= updateSelectableCharacterViewList;
}
}
/// <summary>
@@ -156,11 +158,6 @@ public class teamSettingPanel : MonoBehaviour
{
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++)
{
@@ -192,7 +189,6 @@ public class teamSettingPanel : MonoBehaviour
if(currentSelectedTeam.LeaderId==currentTeam[i].characterId)
{
Debug.Log($"当前队长为{currentTeam[i].characterId} {currentTeam[i].currentBoundaryLevel},存档信息为{currentSelectedTeam.LeaderId}");
t.isLeader.SetActive(true);
t.notLeader.SetActive(false);
}
@@ -214,6 +210,9 @@ public class teamSettingPanel : MonoBehaviour
{
Destroy(child.gameObject);
}
teamManager.currentSelectedCharacterCard = null;
List<CharacterView> currentTeam = teamManager.getCurrentSelectedTeam().teamIdList;
List<CharacterView> selectAbleCharacters = teamManager.SelectableCharacterList;
foreach (CharacterView c in selectAbleCharacters) //id and level
{
@@ -223,19 +222,34 @@ public class teamSettingPanel : MonoBehaviour
if (ccv != null&& tcdi!=null)
{
ccv.characterID = tcdi.CharacterID;
ccv.currentBoundaryLevel= c.currentBoundaryLevel;
ccv.characterImage.sprite =tcdi.CharacterCardSprite;
ccv.levelIcon.sprite = getLevelSprite(c.currentBoundaryLevel);
ccv.occupationIcon.sprite = tcdi.CharacterRoleSprite;
}
if (checkExistenceStatus(currentTeam, ccv.characterID))
{
ccv.isSelected = true;
ccv.characterImage.color = new Color(0.5f, 0.5f, 0.5f,1);
}
}
}
private bool checkExistenceStatus(List<CharacterView> currentTeam,int characterID)
{
foreach (CharacterView c in currentTeam)
{
if (c.characterId == characterID)
return true;
}
return false;
}
/// <summary>
/// 用于保证team内对象的选中状态一致
/// </summary>
public void updateTeamCharacterSelectedStatus()
{
int currentSelectedCharacter = teamManager.currentSelectedCharacter;
Debug.Log($"当前选择为{currentSelectedCharacter}");
int currentSelectedCharacter = teamManager.currentSelectedTeamCharacter;
for (int i = 0; i < teamElementsObj.Length; i++)
{
if (i != currentSelectedCharacter)
@@ -291,10 +305,7 @@ public class teamSettingPanel : MonoBehaviour
}
}
/// <summary>
/// 若玩家更换了team成员或调整了team成员顺序,则使用此方法更新view
/// </summary>
public void updateTeamStatus()
public void updateCharacter()
{
}