| //-------------------------------------------------------- | 
| //    [Author]:                   Wu Xijin | 
| //    [Date]   :           Sunday, May 08, 2016 | 
| //-------------------------------------------------------- | 
| using UnityEngine; | 
| using System.Text; | 
| using System; | 
|   | 
|   | 
| public static class LocalSave | 
| { | 
|   | 
|     public static void DeleteAll() | 
|     { | 
|         PlayerPrefs.DeleteAll(); | 
|     } | 
|   | 
|     public static void DeleteKey(string _key) | 
|     { | 
|         PlayerPrefs.DeleteKey(_key); | 
|     } | 
|   | 
|     public static bool HasKey(string _key) | 
|     { | 
|         return PlayerPrefs.HasKey(_key); | 
|     } | 
|   | 
|     public static void SetInt(string key, int value) | 
|     { | 
|         PlayerPrefs.SetInt(key, value); | 
|     } | 
|   | 
|     public static int GetInt(string key, int _default = 0) | 
|     { | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             return _default; | 
|         } | 
|         else | 
|         { | 
|             return PlayerPrefs.GetInt(key); | 
|         } | 
|     } | 
|   | 
|     public static void SetFloat(string key, float value) | 
|     { | 
|   | 
|         PlayerPrefs.SetFloat(key, value); | 
|     } | 
|   | 
|     public static float GetFloat(string key, float _default = 0f) | 
|     { | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             return _default; | 
|         } | 
|         else | 
|         { | 
|             return PlayerPrefs.GetFloat(key); | 
|         } | 
|     } | 
|   | 
|     public static void SetBool(string key, bool value) | 
|     { | 
|   | 
|         PlayerPrefs.SetInt(key, value ? 1 : 0); | 
|     } | 
|   | 
|     public static bool GetBool(string key, bool _default = false) | 
|     { | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             return _default; | 
|         } | 
|         else | 
|         { | 
|             return PlayerPrefs.GetInt(key) == 1; | 
|         } | 
|     } | 
|   | 
|     public static void SetString(string key, string value) | 
|     { | 
|   | 
|         PlayerPrefs.SetString(key, value); | 
|     } | 
|   | 
|     public static string GetString(string key) | 
|     { | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             return string.Empty; | 
|         } | 
|         else | 
|         { | 
|             return PlayerPrefs.GetString(key); | 
|         } | 
|     } | 
|   | 
|     public static void SetVector3(string key, Vector3 value) | 
|     { | 
|         var sb = new StringBuilder(); | 
|         sb.Append(value.x); | 
|         sb.Append(";"); | 
|         sb.Append(value.y); | 
|         sb.Append(";"); | 
|         sb.Append(value.z); | 
|   | 
|         PlayerPrefs.SetString(key, sb.ToString()); | 
|     } | 
|   | 
|     public static Vector3 GetVector3(string key) | 
|     { | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             return Vector3.zero; | 
|         } | 
|         else | 
|         { | 
|             var v = new Vector3(); | 
|             var strArray = PlayerPrefs.GetString(key).Split(';'); | 
|             v.x = float.Parse(strArray[0]); | 
|             v.y = float.Parse(strArray[2]); | 
|             v.z = float.Parse(strArray[4]); | 
|   | 
|             return v; | 
|         } | 
|     } | 
|   | 
|     public static void SetIntArray(string key, int[] value) | 
|     { | 
|         if (value != null && value.Length > 0) | 
|         { | 
|             var sb = new StringBuilder(); | 
|             for (var i = 0; i < value.Length; i++) | 
|             { | 
|                 sb.Append(value[i]); | 
|                 sb.Append(';'); | 
|             } | 
|   | 
|             sb.Remove(sb.Length - 1, 1); | 
|             PlayerPrefs.SetString(key, sb.ToString()); | 
|         } | 
|         else | 
|         { | 
|             PlayerPrefs.DeleteKey(key); | 
|         } | 
|     } | 
|   | 
|     public static int[] GetIntArray(string key) | 
|     { | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             return null; | 
|         } | 
|         else | 
|         { | 
|             var value = PlayerPrefs.GetString(key); | 
|   | 
|             var strArray = value.Split(';'); | 
|             var intArray = new int[strArray.Length]; | 
|             for (var i = 0; i < strArray.Length; i++) | 
|             { | 
|                 int.TryParse(strArray[i], out intArray[i]); | 
|             } | 
|   | 
|             return intArray; | 
|         } | 
|     } | 
|   | 
|     public static void SetFloatArray(string key, float[] value) | 
|     { | 
|         var sb = new StringBuilder(); | 
|         for (var i = 0; i < value.Length; i++) | 
|         { | 
|             sb.Append(value[i]); | 
|             sb.Append(";"); | 
|         } | 
|   | 
|         sb.Remove(sb.Length - 1, 1); | 
|         PlayerPrefs.SetString(key, sb.ToString()); | 
|     } | 
|   | 
|     public static float[] GetFloatArray(string key) | 
|     { | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             return null; | 
|         } | 
|         else | 
|         { | 
|             var value = PlayerPrefs.GetString(key); | 
|             var strArray = value.Split(';'); | 
|             var array = new float[strArray.Length]; | 
|             for (var i = 0; i < strArray.Length; i++) | 
|             { | 
|                 float.TryParse(strArray[i], out array[i]); | 
|             } | 
|   | 
|             return array; | 
|         } | 
|   | 
|     } | 
|   | 
|     public static void SetStringArray(string key, string[] value) | 
|     { | 
|         var valueGroup = string.Join(";", value); | 
|         PlayerPrefs.SetString(key, valueGroup); | 
|     } | 
|   | 
|     public static string[] GeStringArray(string key) | 
|     { | 
|         if (!PlayerPrefs.HasKey(key)) | 
|         { | 
|             return null; | 
|         } | 
|         else | 
|         { | 
|             var value = PlayerPrefs.GetString(key); | 
|             return value.Split(';'); | 
|         } | 
|     } | 
| } |