完成编队预设切换、编队位置交换、队长设置功能
This commit is contained in:
@@ -29,7 +29,11 @@ public class TeamManager : MonoBehaviour
|
||||
/// 在修改被选中的编队中角色的索引时触发
|
||||
/// </summary>
|
||||
public event Action OnSelectedCharacterChanged;
|
||||
|
||||
/// <summary>
|
||||
/// 修改选定的预设队伍时触发
|
||||
/// </summary>
|
||||
public event Action OnSelectedTeamChanged;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
if (Instance == null)
|
||||
@@ -55,20 +59,33 @@ public class TeamManager : MonoBehaviour
|
||||
currentTeamSettings[0].teamIdList.Add(new CharacterView(1001002,"S"));
|
||||
currentTeamSettings[0].teamIdList.Add(new CharacterView(1001001,"C"));
|
||||
currentTeamSettings[0].teamIdList.Add( new CharacterView(1001002,"C"));
|
||||
currentTeamSettings[0].teamIdList.Add(new CharacterView(-1,null));
|
||||
|
||||
currentTeamSettings.Add(1,new TeamSetting(new List<CharacterView>(),1001002));
|
||||
currentTeamSettings[0].teamIdList.Add(new CharacterView(1001001,"C"));
|
||||
currentTeamSettings[0].teamIdList.Add(new CharacterView(1001002,"B"));
|
||||
currentTeamSettings[0].teamIdList.Add(new CharacterView(1001001,"C"));
|
||||
currentTeamSettings[0].teamIdList.Add( new CharacterView(1001002,"A"));
|
||||
currentTeamSettings[0].teamIdList.Add(new CharacterView(1001002,"A"));
|
||||
currentTeamSettings[1].teamIdList.Add(new CharacterView(1001001,"C"));
|
||||
currentTeamSettings[1].teamIdList.Add(new CharacterView(1001002,"B"));
|
||||
currentTeamSettings[1].teamIdList.Add(new CharacterView(1001001,"C"));
|
||||
currentTeamSettings[1].teamIdList.Add( new CharacterView(1001002,"A"));
|
||||
currentTeamSettings[1].teamIdList.Add(new CharacterView(1001002,"A"));
|
||||
|
||||
currentTeamSettings.Add(2,new TeamSetting(new List<CharacterView>(),-1));
|
||||
currentTeamSettings.Add(3,new TeamSetting(new List<CharacterView>(),-1));
|
||||
|
||||
|
||||
Debug.Log("testTeamSetting ready");
|
||||
}
|
||||
public void openTeamSettingPanel()=> teamSettingPanelInstance.gameObject.SetActive(true);
|
||||
public void closeTeamSettingPanel()=> teamSettingPanelInstance.gameObject.SetActive(false);
|
||||
|
||||
|
||||
public void setCurrentSelectedTeam(int index)
|
||||
{
|
||||
if (index > 3 || index < 0)
|
||||
{
|
||||
Debug.LogWarning("所选队伍预设索引超出范围");
|
||||
return;
|
||||
}
|
||||
currentSelectedTeam = index;
|
||||
}
|
||||
void Start()
|
||||
{
|
||||
// if(teamSettingPanelInstance == null)
|
||||
@@ -102,15 +119,26 @@ public class TeamManager : MonoBehaviour
|
||||
{
|
||||
if (characterIndex != currentSelectedCharacter)
|
||||
{
|
||||
Debug.Log($"修改选中对象从{currentSelectedCharacter}到{characterIndex}");
|
||||
currentSelectedCharacter = characterIndex;
|
||||
OnSelectedCharacterChanged?.Invoke(); // 触发事件
|
||||
}
|
||||
}
|
||||
|
||||
public void setCurrentSelectedTeamSetting(int teamIndex)
|
||||
{
|
||||
if(teamIndex != currentSelectedTeam)
|
||||
{
|
||||
Debug.Log($"修改选中队伍预设从{currentSelectedTeam}到{teamIndex}");
|
||||
currentSelectedTeam = teamIndex;
|
||||
OnSelectedTeamChanged?.Invoke(); // 触发事件
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// 交换指定索引中的两个队伍中元素的位置
|
||||
/// </summary>
|
||||
/// <param name="firstIndex"></param>
|
||||
/// <param name="secondIndex"></param>
|
||||
/// <param name="firstIndex">当前元素</param>
|
||||
/// <param name="secondIndex">目标元素位置</param>
|
||||
public void swapTeamElements(int firstIndex, int secondIndex)
|
||||
{
|
||||
List<CharacterView> newCurrentTeam = getCurrentSelectedTeam().teamIdList;
|
||||
@@ -118,12 +146,15 @@ public class TeamManager : MonoBehaviour
|
||||
newCurrentTeam[firstIndex] = newCurrentTeam[secondIndex];
|
||||
newCurrentTeam[secondIndex] = temp;
|
||||
currentTeamSettings[currentSelectedTeam].teamIdList = newCurrentTeam;
|
||||
teamSettingPanelInstance.updateTeamSettingElements();
|
||||
setCurrentSelectedCharacterInTeam(secondIndex);
|
||||
Debug.Log($"swapTeamElements done,当前选中的为{getCurrentSelectedTeam().teamIdList[currentSelectedCharacter].characterId},开始位置是{firstIndex},目标位置是{secondIndex},现在{currentSelectedCharacter}");
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
public void setTeamLeader(int characterIndex)
|
||||
{
|
||||
|
||||
getCurrentSelectedTeam().LeaderId = SelectableCharacterList[characterIndex].characterId;
|
||||
teamSettingPanelInstance.updateTeamSettingElements();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user