80 lines
2.5 KiB
C#
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;
|
|
}
|
|
} |