InformationSave_UseResources_Over
This commit is contained in:
@@ -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,8 +59,8 @@ namespace Stary.Evo.InformationSave
|
||||
public void UpdateInformation()
|
||||
{
|
||||
String sceneNmae = gameObject.scene.name;
|
||||
ScriptObjectSave scriptObjectSaveData = AssetDatabase.LoadAssetAtPath<ScriptObjectSave>(path);
|
||||
if(scriptObjectSaveData == null)
|
||||
ScriptObjectSave scriptObjectSaveData = Resources.Load<ScriptObjectSave>(path);
|
||||
if (scriptObjectSaveData == null)
|
||||
{
|
||||
Debug.LogError("ScriptObjectSaveData配置文件丢失");
|
||||
return;
|
||||
@@ -84,19 +85,24 @@ 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)
|
||||
{
|
||||
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, "确定", "取消"))
|
||||
if (UnityEditor.EditorUtility.DisplayDialog("提示", "数据集下已有相同名称的物体数据\n是否覆盖更新!!!\n" + "场景名:" + sceneNmae + "\n物体名:" + gameObject.name, "确定", "取消"))
|
||||
{
|
||||
scriptObjectSaveData.dic[sceneNmae + gameObject.name] = new List<InformationBase>(_list);
|
||||
}
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user