/// <summary> /// Load a json file with custom extension from a directory. /// </summary> /// <param name="data">Reference to data to load</param> /// <param name="directory">Path to a directory where the json file exist</param> /// <param name="filename">Name of the json file</param> /// <param name="extension">Custom extension of the json file</param> /// <typeparam name="T">Data type to load. Must be serializable.</typeparam> public static void LoadFromJson <T>(this VariableCore <T> data, string directory, string filename, string extension) { var ext = extension[0] == '.' ? extension : "." + extension; var filenameExt = $"{filename}{ext}"; LoadFromJson(data, directory, filenameExt); }
/// <summary> /// Load a json file from the given path. /// </summary> /// <param name="data">Reference to data to load</param> /// <param name="fullpath">Path to a directory where the json file exist. Path must include the json file.</param> /// <typeparam name="T">Data type to load. Must be serializable.</typeparam> public static void LoadFromJson <T>(this VariableCore <T> data, string fullpath) { if (!File.Exists(fullpath)) { return; } var jsonString = File.ReadAllText(fullpath); data.Value = JsonUtility.FromJson <JsonableWrapper <T> >(jsonString).value; }
/// <summary> /// Load a json file from a directory. /// </summary> /// <param name="data">Reference to data to load</param> /// <param name="directory">Path to a directory where the json file exist</param> /// <param name="filename">Name of the json file</param> /// <typeparam name="T">Data type to load. Must be serializable.</typeparam> public static void LoadFromJson <T>(this VariableCore <T> data, string directory, string filename) { if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } var fn = filename.Split('.').Length < 2 ? filename + DefaultExtension : filename; var fullpath = Path.Combine(directory, fn); LoadFromJson(data, fullpath); }
/// <summary> /// Save a data into json file to the given path. /// </summary> /// <param name="data">Data to save.</param> /// <param name="fullPath">Path to a directory where the json file would exist. Path must include the json filename and extension.</param> /// <typeparam name="T">Data type to save. Must be serializable.</typeparam> public static void SaveToJson <T>(this VariableCore <T> data, string fullPath) { var jsonString = JsonUtility.ToJson(new JsonableWrapper <T>(data.Value), Application.isEditor); File.WriteAllText(fullPath, jsonString); }
/// <summary> /// Save a data into json file. /// </summary> /// <param name="data"></param> /// <typeparam name="T"></typeparam> public static void SaveToJson <T>(this VariableCore <T> data) { SaveToJson(data, DefaultPath, data.name); }
/// <summary> /// Load a json file from Unity's default data directory. /// </summary> /// <param name="data">Reference to data to load</param> /// <typeparam name="T">Data type to load. Must be serializable.</typeparam> public static void LoadFromJson <T>(this VariableCore <T> data) { LoadFromJson(data, DefaultPath, data.name); }
/// <summary> /// Check whether a json file exist. /// </summary> /// <param name="data"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static bool IsJsonExist <T>(this VariableCore <T> data) { return(IsJsonExist(DefaultPath, data.name)); }
/// <summary> /// Check whether a json file exist in a directory. /// </summary> /// <param name="data"></param> /// <param name="filename"></param> /// <returns></returns> public static bool IsJsonExist <T>(this VariableCore <T> data, string filename) { return(IsJsonExist(filename)); }