-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPlayerPrefsStorage.cs
117 lines (99 loc) · 3.01 KB
/
PlayerPrefsStorage.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
using Newtonsoft.Json;
using UnityEngine;
namespace Cnoom.UnityTool.StorageUtils
{
public class PlayerPrefsStorage : IStorage
{
#region 数据保存
public void SaveInt(string key, int value, bool isSave = true)
{
PlayerPrefs.SetInt(key, value);
TrySave(isSave);
}
public void SaveFloat(string key, float value, bool isSave = true)
{
PlayerPrefs.SetFloat(key, value);
TrySave(isSave);
}
public void SaveString(string key, string value, bool isSave = true)
{
PlayerPrefs.SetString(key, value);
TrySave(isSave);
}
public void SaveObject(string key, object value, bool isSave = true)
{
SaveObject(key, value, isSave,null);
}
public void SaveObject(string key, object value, bool isSave = true, params JsonConverter[] converters)
{
string json = JsonConvert.SerializeObject(value,converters);
SaveString(key, json, isSave);
}
private void TrySave(bool isSave)
{
if(isSave)
{
PlayerPrefs.Save();
}
}
#endregion
#region 数据读取
public int LoadInt(string key, int defaultValue = 0)
{
if(!PlayerPrefs.HasKey(key))
{
return defaultValue;
}
return PlayerPrefs.GetInt(key, defaultValue);
}
public float LoadFloat(string key, float defaultValue = 0f)
{
if(!PlayerPrefs.HasKey(key))
{
return defaultValue;
}
return PlayerPrefs.GetFloat(key, defaultValue);
}
public string LoadString(string key, string defaultValue = null)
{
if(!PlayerPrefs.HasKey(key))
{
return defaultValue;
}
return PlayerPrefs.GetString(key, defaultValue);
}
public T LoadObject<T>(string key, T defaultValue = default)
{
string json = PlayerPrefs.GetString(key);
if(string.IsNullOrEmpty(json))
{
return defaultValue;
}
return JsonConvert.DeserializeObject<T>(json);
}
public T LoadObject<T>(string key, T defaultValue = default, params JsonConverter[] converters)
{
string json = PlayerPrefs.GetString(key);
if(string.IsNullOrEmpty(json))
{
return defaultValue;
}
return JsonConvert.DeserializeObject<T>(json,converters);
}
#endregion
#region 数据清理
public void Delete(string key)
{
PlayerPrefs.DeleteKey(key);
}
public void Clear()
{
PlayerPrefs.DeleteAll();
}
#endregion
public bool Exists(string key)
{
return PlayerPrefs.HasKey(key);
}
}
}