InformationSave_UseResources_Over
This commit is contained in:
@@ -17,7 +17,7 @@ namespace Stary.Evo.InformationSave
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 配置文件存储路径
|
/// 配置文件存储路径
|
||||||
/// </summary>
|
/// </summary>
|
||||||
string path = "Assets/02.InformationSave/RunTime/Data/ScriptObjectSaveData.asset";
|
string path = "InformationSaveData/ScriptObjectSaveData";
|
||||||
|
|
||||||
public virtual void Add()
|
public virtual void Add()
|
||||||
{
|
{
|
||||||
@@ -51,6 +51,7 @@ namespace Stary.Evo.InformationSave
|
|||||||
int index = _list.FindIndex(n => n.desc == desc);
|
int index = _list.FindIndex(n => n.desc == desc);
|
||||||
if (index != -1) Switch(index);
|
if (index != -1) Switch(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Editor
|
#region Editor
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
@@ -58,8 +59,8 @@ namespace Stary.Evo.InformationSave
|
|||||||
public void UpdateInformation()
|
public void UpdateInformation()
|
||||||
{
|
{
|
||||||
String sceneNmae = gameObject.scene.name;
|
String sceneNmae = gameObject.scene.name;
|
||||||
ScriptObjectSave scriptObjectSaveData = AssetDatabase.LoadAssetAtPath<ScriptObjectSave>(path);
|
ScriptObjectSave scriptObjectSaveData = Resources.Load<ScriptObjectSave>(path);
|
||||||
if(scriptObjectSaveData == null)
|
if (scriptObjectSaveData == null)
|
||||||
{
|
{
|
||||||
Debug.LogError("ScriptObjectSaveData配置文件丢失");
|
Debug.LogError("ScriptObjectSaveData配置文件丢失");
|
||||||
return;
|
return;
|
||||||
@@ -84,41 +85,39 @@ namespace Stary.Evo.InformationSave
|
|||||||
{
|
{
|
||||||
String sceneNmae = gameObject.scene.name;
|
String sceneNmae = gameObject.scene.name;
|
||||||
// 加载 ScriptObjectSaveData
|
// 加载 ScriptObjectSaveData
|
||||||
ScriptObjectSave scriptObjectSaveData = AssetDatabase.LoadAssetAtPath<ScriptObjectSave>(path);
|
ScriptObjectSave scriptObjectSaveData = Resources.Load<ScriptObjectSave>(path);
|
||||||
if(scriptObjectSaveData != null)
|
if(scriptObjectSaveData == null)
|
||||||
{
|
{
|
||||||
if(scriptObjectSaveData.dic == null)
|
scriptObjectSaveData = CheckAndCreateFoldersAndAsset();
|
||||||
|
Debug.Log("创建了ScriptObjectSaveData文件");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scriptObjectSaveData.dic == null)
|
||||||
|
{
|
||||||
|
Debug.LogError("ScriptObjectSaveData的dic为空");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 检查是否已经存在相同的键
|
||||||
|
if (scriptObjectSaveData.dic.ContainsKey(sceneNmae + gameObject.name))
|
||||||
|
{
|
||||||
|
// 如果存在,选择是否替换原有的 List
|
||||||
|
if (UnityEditor.EditorUtility.DisplayDialog("提示", "数据集下已有相同名称的物体数据\n是否覆盖更新!!!\n" + "场景名:" + sceneNmae + "\n物体名:" + gameObject.name, "确定", "取消"))
|
||||||
{
|
{
|
||||||
Debug.LogError("ScriptObjectSaveData的dic为空");
|
scriptObjectSaveData.dic[sceneNmae + gameObject.name] = new List<InformationBase>(_list);
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// 检查是否已经存在相同的键
|
|
||||||
if (scriptObjectSaveData.dic.ContainsKey(sceneNmae + gameObject.name))
|
|
||||||
{
|
|
||||||
// 如果存在,选择是否替换原有的 List
|
|
||||||
if(UnityEditor.EditorUtility.DisplayDialog("提示", "数据集下已有相同名称的物体数据\n是否覆盖更新!!!\n"+ "场景名:"+ sceneNmae + "\n物体名:"+gameObject.name, "确定", "取消"))
|
|
||||||
{
|
|
||||||
scriptObjectSaveData.dic[sceneNmae + gameObject.name] = new List<InformationBase>(_list);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 如果不存在,添加新的键值对
|
return false;
|
||||||
scriptObjectSaveData.dic.Add(sceneNmae + gameObject.name, new List<InformationBase>(_list));
|
|
||||||
}
|
}
|
||||||
AssetDatabase.SaveAssets();
|
|
||||||
AssetDatabase.Refresh();
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Debug.LogError("ScriptObjectSaveData配置文件丢失");
|
// 如果不存在,添加新的键值对
|
||||||
return false;
|
scriptObjectSaveData.dic.Add(sceneNmae + gameObject.name, new List<InformationBase>(_list));
|
||||||
}
|
}
|
||||||
|
AssetDatabase.SaveAssets();
|
||||||
|
AssetDatabase.Refresh();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -126,10 +125,35 @@ namespace Stary.Evo.InformationSave
|
|||||||
return false;
|
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()
|
public override void Draw()
|
||||||
|
|||||||
Reference in New Issue
Block a user