Files
bansonic_beta_main/Assets/scripts/Managers/CharacterDataManager.cs
T
FloatGaming 1d818fa4eb 整合包
gameplay bundle has been imported together
2025-08-09 18:29:32 +08:00

80 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
public class CharacterDataManager : Singleton_Mono<CharacterDataManager>
{
public Character_Data_SO data;
[SerializeField] List<Character_Data_SO> data_List = new();
public Dictionary<string, List<Character_Data_SO>> data_Dic = new();
private const string SAVE_FILE_NAME = "CharacterData";
protected override void In_Init()
{
data_Dic = new();
var data = Load_Character_Data_List();
if (data != null && data.Count > 0)
{
data_List = new();
foreach (var item in data)
{
var so = ScriptableObject.CreateInstance<Character_Data_SO>();
so.data = item;
so.name = item.realName;
data_List.Add(so);
}
for (int i = 0; i < Enum.GetValues(typeof(E_Character_Type)).Length; i++)
{
var type = (E_Character_Type)i;
//Debug.Log(type.ToString());
var list = data_List.FindAll(e => e.data.type == type.ToString());
data_Dic.Add(type.ToString(), list);
}
}
}
protected override bool Is_Singleton_Auto()
{
return true;
}
//void InitializeFromBaseImage()
//{
// var data = ScriptableObject.CreateInstance<Character_Data>();
// data.realName = "Yue Tao";
// data.stageName = "Yue Tao";
// data.gender = E_Character_Gender.Female.ToString();
// data.age = 16;
// data.height = 165f;
// data.weight = 50f;
// data.birthday = "07/10";
// data.registrationDate = "2023/01/21";
// data.name = data.realName; ;
// data.organizationInfo = new()
// {
// enemies = new[] { "TERMINOLOGY", "AGENDA ORGANIZATIONS", "TERRITORIAL" },
// agendas = new string[0],
// territories = new string[0],
// };
// data_List.Add(data);
// this.data = data;
//}
[ContextMenu("保存", false)]
public void Save_Character_Data_List()
{
List<Character_Data> data = new();
foreach (var item in data_List)
{
data.Add(item.data);
}
JsonDataHandler.Save(data, SAVE_FILE_NAME, nameof(CharacterDataManager));
}
[ContextMenu("读取", false)]
public List<Character_Data> Load_Character_Data_List()
{
List<Character_Data> data = new();
JsonDataHandler.Try_Load(ref data, SAVE_FILE_NAME);
return data;
}
}