47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using System.IO;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
|
|
public static class SaveDataMenu
|
|
{
|
|
private const string MENU = "Tools/Run Rich 3D/Delete Save";
|
|
|
|
[MenuItem(MENU)]
|
|
public static void DeleteSave()
|
|
{
|
|
var deleted = 0;
|
|
foreach (var path in SavePaths())
|
|
{
|
|
if (!File.Exists(path))
|
|
{
|
|
continue;
|
|
}
|
|
File.Delete(path);
|
|
Debug.Log("Deleted " + path);
|
|
deleted++;
|
|
}
|
|
PlayerPrefs.DeleteAll();
|
|
PlayerPrefs.Save();
|
|
Debug.Log(deleted > 0
|
|
? "Save cleared. Next play starts at level 1."
|
|
: "No save file found; PlayerPrefs cleared anyway. Next play starts at level 1.");
|
|
}
|
|
|
|
private static string[] SavePaths()
|
|
{
|
|
var controller = Object.FindObjectOfType<SavedDataController>();
|
|
var field = typeof(OHM.UnityToolkit.SavedDataController<SavedData>)
|
|
.GetField("_dataPath", System.Reflection.BindingFlags.Instance
|
|
| System.Reflection.BindingFlags.NonPublic);
|
|
var name = controller != null && field != null ? field.GetValue(controller) as string : null;
|
|
|
|
if (string.IsNullOrEmpty(name))
|
|
{
|
|
return Directory.Exists(Application.persistentDataPath)
|
|
? Directory.GetFiles(Application.persistentDataPath, "*.json")
|
|
: new string[0];
|
|
}
|
|
return new[] { Path.Combine(Application.persistentDataPath, name) };
|
|
}
|
|
}
|