InformationSave_UseResources_Over

This commit is contained in:
Han
2025-03-27 16:56:33 +08:00
parent 4f6edd606d
commit 0f88c0296f

View File

@@ -17,7 +17,7 @@ namespace Stary.Evo.InformationSave
/// <summary>
/// 配置文件存储路径
/// </summary>
string path = "Assets/02.InformationSave/RunTime/Data/ScriptObjectSaveData.asset";
string path = "InformationSaveData/ScriptObjectSaveData";
public virtual void Add()
{
@@ -51,6 +51,7 @@ namespace Stary.Evo.InformationSave
int index = _list.FindIndex(n => n.desc == desc);
if (index != -1) Switch(index);
}
#region Editor
#if UNITY_EDITOR
@@ -58,7 +59,7 @@ namespace Stary.Evo.InformationSave
public void UpdateInformation()
{
String sceneNmae = gameObject.scene.name;
ScriptObjectSave scriptObjectSaveData = AssetDatabase.LoadAssetAtPath<ScriptObjectSave>(path);
ScriptObjectSave scriptObjectSaveData = Resources.Load<ScriptObjectSave>(path);
if (scriptObjectSaveData == null)
{
Debug.LogError("ScriptObjectSaveData配置文件丢失");
@@ -84,14 +85,19 @@ namespace Stary.Evo.InformationSave
{
String sceneNmae = gameObject.scene.name;
// 加载 ScriptObjectSaveData
ScriptObjectSave scriptObjectSaveData = AssetDatabase.LoadAssetAtPath<ScriptObjectSave>(path);
if(scriptObjectSaveData != null)
ScriptObjectSave scriptObjectSaveData = Resources.Load<ScriptObjectSave>(path);
if(scriptObjectSaveData == null)
{
scriptObjectSaveData = CheckAndCreateFoldersAndAsset();
Debug.Log("创建了ScriptObjectSaveData文件");
}
if (scriptObjectSaveData.dic == null)
{
Debug.LogError("ScriptObjectSaveData的dic为空");
return false;
}
// 检查是否已经存在相同的键
if (scriptObjectSaveData.dic.ContainsKey(sceneNmae + gameObject.name))
{
@@ -104,7 +110,6 @@ namespace Stary.Evo.InformationSave
{
return false;
}
}
else
{
@@ -113,12 +118,6 @@ namespace Stary.Evo.InformationSave
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
else
{
Debug.LogError("ScriptObjectSaveData配置文件丢失");
return false;
}
return true;
}
@@ -126,10 +125,35 @@ namespace Stary.Evo.InformationSave
return false;
}
private ScriptObjectSave CheckAndCreateFoldersAndAsset()
{
string ResourcesFolderName = "Resources";
string InformationSaveDataFolderName = "InformationSaveData";
string ScriptObjectSaveDataFileName = "ScriptObjectSaveData";
ScriptObjectSave scriptableObject;
//private int guidIndex;
// 判断是否创建Resources文件夹
string resourcesPath = Path.Combine(Application.dataPath, ResourcesFolderName);
if (!Directory.Exists(resourcesPath))
{
Directory.CreateDirectory(resourcesPath);
}
//private List<string> strings = new List<string>();
// 判断是否创建InformationSaveData文件夹
string informationSaveDataPath = Path.Combine(resourcesPath, InformationSaveDataFolderName);
if (!Directory.Exists(informationSaveDataPath))
{
Directory.CreateDirectory(informationSaveDataPath);
}
// 创建ScriptObjectSaveData.asset文件
scriptableObject = ScriptableObject.CreateInstance<ScriptObjectSave>();
AssetDatabase.CreateAsset(scriptableObject, "Assets/" + ResourcesFolderName + "/" + InformationSaveDataFolderName + "/" + ScriptObjectSaveDataFileName + ".asset");
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
return scriptableObject;
}
//绘制
public override void Draw()