设置scriptable存储角色信息,调整编队系统部分代码逻辑

This commit is contained in:
2025-06-13 01:11:41 +08:00
parent 5c20a1e935
commit 5728adc919
42 changed files with 553 additions and 1156 deletions
+33 -28
View File
@@ -1,6 +1,7 @@
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.Collections;
using UnityEngine;
public class TeamManager : MonoBehaviour
@@ -9,13 +10,13 @@ public class TeamManager : MonoBehaviour
public teamSettingPanel teamSettingPanelInstance;
/// <summary>
/// 当前玩家存档下的所有编队配置
/// 当前玩家存档下的所有编队配置,key为编队索引,value为该编队的角色列表,表内只有角色ID
/// </summary>
public Dictionary<int, List<Character>> currentTeamSettings = new Dictionary<int, List<Character>>();
public Dictionary<int, TeamSetting> currentTeamSettings = new Dictionary<int, TeamSetting>();
/// <summary>
/// 玩家存档下已经解锁的角色信息列表
/// </summary>
public List<Character> SelectableCharacterList = new List<Character>();
public List<CharacterView> SelectableCharacterList = new List<CharacterView>();
/// <summary>
/// 根据此字段来在编队信息页显示已有编队
/// </summary>
@@ -43,40 +44,44 @@ public class TeamManager : MonoBehaviour
void testTeamSetting()
{
SelectableCharacterList.Add(new Character("YUETAO","default","C","pure dissidents"));
SelectableCharacterList.Add(new Character("AYANO","default","B","default skillName"));
SelectableCharacterList.Add(new Character("YUETAO","default","C","pure dissidents"));
SelectableCharacterList.Add(new Character("AYANO","default","S","default skillName"));
SelectableCharacterList.Add(new CharacterView(1001001,"C"));
SelectableCharacterList.Add(new CharacterView(1001002,"S"));
SelectableCharacterList.Add(new CharacterView(1001001,"C"));
SelectableCharacterList.Add(new CharacterView(1001002,"C"));
//手动向currentTeamSettings和SelectableCharacterList添加测试数据
currentTeamSettings.Add(0,new List<Character>());
currentTeamSettings[0].Add(new Character("YUETAO","default","C","pure dissidents"));
currentTeamSettings[0].Add(new Character("AYANO","default","B","default skillName"));
currentTeamSettings[0].Add(new Character("YUETAO","default","C","pure dissidents"));
currentTeamSettings[0].Add(new Character("YUETAO","default","C","pure dissidents"));
currentTeamSettings.Add(0,new TeamSetting(new List<CharacterView>(),1001001));
currentTeamSettings[0].teamIdList.Add(new CharacterView(1001001,"C"));
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.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.Add(1,new List<Character>());
currentTeamSettings[1].Add(new Character("YUETAO","default","C","pure dissidents"));
currentTeamSettings[1].Add(new Character("AYANO","default","B","default skillName"));
currentTeamSettings[1].Add(new Character("YUETAO","default","C","pure dissidents"));
currentTeamSettings[1].Add(new Character("YUETAO","default","C","pure dissidents"));
Debug.Log("testTeamSetting ready");
}
public void openTeamSettingPanel()=> teamSettingPanelInstance.gameObject.SetActive(true);
public void closeTeamSettingPanel()=> teamSettingPanelInstance.gameObject.SetActive(false);
void Start()
{
if(teamSettingPanelInstance == null)
{
teamSettingPanelInstance = teamSettingPanel.Instance;
}
// if(teamSettingPanelInstance == null)
// {
// teamSettingPanelInstance = teamSettingPanel.Instance;
// }
testTeamSetting();//接入玩家存档后请注释掉此行
}
/// <summary>
/// 读取玩家存档信息后可直接在此写入编队信息
/// </summary>
/// <param name="playerTeamSettings"></param>
public void setcurrentTeamSettings(Dictionary<int,List<Character>> playerTeamSettings)
public void setcurrentTeamSettings(Dictionary<int,TeamSetting> playerTeamSettings)
{
currentTeamSettings = playerTeamSettings;
}
@@ -84,12 +89,12 @@ public class TeamManager : MonoBehaviour
/// 依据选定的队伍预设索引来获得队伍信息
/// </summary>
/// <returns></returns>
public List<Character> getCurrentSelectedTeam()
public TeamSetting getCurrentSelectedTeam()
{
return currentTeamSettings[currentSelectedTeam];
}
public void setCurrentSelectedTeam(List<Character> newTeamData, int teamIndex)
public void setCurrentSelectedTeam(TeamSetting newTeamData, int teamIndex)
{
currentTeamSettings[teamIndex] = newTeamData;
}
@@ -108,11 +113,11 @@ public class TeamManager : MonoBehaviour
/// <param name="secondIndex"></param>
public void swapTeamElements(int firstIndex, int secondIndex)
{
List<Character> newCurrentTeam = getCurrentSelectedTeam();
Character temp = newCurrentTeam[firstIndex];
List<CharacterView> newCurrentTeam = getCurrentSelectedTeam().teamIdList;
CharacterView temp = newCurrentTeam[firstIndex];
newCurrentTeam[firstIndex] = newCurrentTeam[secondIndex];
newCurrentTeam[secondIndex] = temp;
currentTeamSettings[currentSelectedTeam] = newCurrentTeam;
currentTeamSettings[currentSelectedTeam].teamIdList = newCurrentTeam;
}