TEngine--Setting模块

Setting模块

存档模块是采用SettingHelperBase类作为逻辑类,通过更换SettingHelper来修改API代码。
存档本身没什么好讲的,很简单,有不会的用一用PlayerPrefs或者EasySave就明白了,这里就不过多赘述了。

我这里列举一下EasySave的存档Helper,方便大家改代码。

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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
using System;
using System.Collections.Generic;
using UnityEngine;

namespace TEngine
{
/// <summary>
/// PlayerPrefs 游戏配置辅助器。
/// </summary>
public class EasySaveSettingHelper : SettingHelperBase
{
/// <summary>
/// 获取游戏配置项数量。
/// </summary>
public override int Count
{
get
{
return ES3.GetKeys().Length;
}
}

/// <summary>
/// 加载游戏配置。
/// </summary>
/// <returns>是否加载游戏配置成功。</returns>
public override bool Load()
{
return true;
}

/// <summary>
/// 保存游戏配置。
/// </summary>
/// <returns>是否保存游戏配置成功。</returns>
public override bool Save()
{
return true;
}

/// <summary>
/// 获取所有游戏配置项的名称。
/// </summary>
/// <returns>所有游戏配置项的名称。</returns>
public override string[] GetAllSettingNames()
{

return ES3.GetKeys();
}

/// <summary>
/// 获取所有游戏配置项的名称。
/// </summary>
/// <param name="results">所有游戏配置项的名称。</param>
public override void GetAllSettingNames(List<string> results)
{
if (results == null)
{
throw new GameFrameworkException("Results is invalid.");
}

results.Clear();
foreach (string file in results) {
ES3.GetKeys(file);
}
}

/// <summary>
/// 检查是否存在指定游戏配置项。
/// </summary>
/// <param name="settingName">要检查游戏配置项的名称。</param>
/// <returns>指定的游戏配置项是否存在。</returns>
public override bool HasSetting(string settingName)
{
return ES3.KeyExists(settingName);
}

/// <summary>
/// 移除指定游戏配置项。
/// </summary>
/// <param name="settingName">要移除游戏配置项的名称。</param>
/// <returns>是否移除指定游戏配置项成功。</returns>
public override bool RemoveSetting(string settingName)
{
if (!ES3.KeyExists(settingName))
{
return false;
}

ES3.DeleteKey(settingName);
return true;
}

/// <summary>
/// 清空所有游戏配置项。
/// </summary>
public override void RemoveAllSettings()
{
ES3.DeleteFile();
}

/// <summary>
/// 从指定游戏配置项中读取布尔值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <returns>读取的布尔值。</returns>
public override bool GetBool(string settingName)
{
return ES3.Load<bool>(settingName);
}

/// <summary>
/// 从指定游戏配置项中读取布尔值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <param name="defaultValue">当指定的游戏配置项不存在时,返回此默认值。</param>
/// <returns>读取的布尔值。</returns>
public override bool GetBool(string settingName, bool defaultValue)
{
return ES3.Load<bool>(settingName, defaultValue ? true : false) ;
}

/// <summary>
/// 向指定游戏配置项写入布尔值。
/// </summary>
/// <param name="settingName">要写入游戏配置项的名称。</param>
/// <param name="value">要写入的布尔值。</param>
public override void SetBool(string settingName, bool value)
{
ES3.Save<bool>(settingName, value);
}

/// <summary>
/// 从指定游戏配置项中读取整数值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <returns>读取的整数值。</returns>
public override int GetInt(string settingName)
{
return ES3.Load<int>(settingName);
}

/// <summary>
/// 从指定游戏配置项中读取整数值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <param name="defaultValue">当指定的游戏配置项不存在时,返回此默认值。</param>
/// <returns>读取的整数值。</returns>
public override int GetInt(string settingName, int defaultValue)
{
return ES3.Load<int>(settingName, defaultValue);
}

/// <summary>
/// 向指定游戏配置项写入整数值。
/// </summary>
/// <param name="settingName">要写入游戏配置项的名称。</param>
/// <param name="value">要写入的整数值。</param>
public override void SetInt(string settingName, int value)
{
ES3.Save<int>(settingName, value);
}

/// <summary>
/// 从指定游戏配置项中读取浮点数值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <returns>读取的浮点数值。</returns>
public override float GetFloat(string settingName)
{
return ES3.Load<float>(settingName);
}

/// <summary>
/// 从指定游戏配置项中读取浮点数值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <param name="defaultValue">当指定的游戏配置项不存在时,返回此默认值。</param>
/// <returns>读取的浮点数值。</returns>
public override float GetFloat(string settingName, float defaultValue)
{
return ES3.Load<float>(settingName, defaultValue);
}

/// <summary>
/// 向指定游戏配置项写入浮点数值。
/// </summary>
/// <param name="settingName">要写入游戏配置项的名称。</param>
/// <param name="value">要写入的浮点数值。</param>
public override void SetFloat(string settingName, float value)
{
ES3.Save<float>(settingName, value);
}

/// <summary>
/// 从指定游戏配置项中读取字符串值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <returns>读取的字符串值。</returns>
public override string GetString(string settingName)
{
return ES3.LoadString(settingName,"没有找到值");
}

/// <summary>
/// 从指定游戏配置项中读取字符串值。
/// </summary>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <param name="defaultValue">当指定的游戏配置项不存在时,返回此默认值。</param>
/// <returns>读取的字符串值。</returns>
public override string GetString(string settingName, string defaultValue)
{
return ES3.LoadString(settingName, defaultValue);
}

/// <summary>
/// 向指定游戏配置项写入字符串值。
/// </summary>
/// <param name="settingName">要写入游戏配置项的名称。</param>
/// <param name="value">要写入的字符串值。</param>
public override void SetString(string settingName, string value)
{
ES3.Save<string>(settingName, value);
}

/// <summary>
/// 从指定游戏配置项中读取对象。
/// </summary>
/// <typeparam name="T">要读取对象的类型。</typeparam>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <returns>读取的对象。</returns>
public override T GetObject<T>(string settingName)
{
return ES3.Load<T>(settingName);
}

/// <summary>
/// 从指定游戏配置项中读取对象。
/// </summary>
/// <param name="objectType">要读取对象的类型。</param>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <returns>读取的对象。</returns>
public override object GetObject(Type objectType, string settingName)
{
throw new GameFrameworkException("func is invalid.");
}

/// <summary>
/// 从指定游戏配置项中读取对象。
/// </summary>
/// <typeparam name="T">要读取对象的类型。</typeparam>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <param name="defaultObj">当指定的游戏配置项不存在时,返回此默认对象。</param>
/// <returns>读取的对象。</returns>
public override T GetObject<T>(string settingName, T defaultObj)
{
return ES3.Load<T>(settingName);
}

/// <summary>
/// 从指定游戏配置项中读取对象。
/// </summary>
/// <param name="objectType">要读取对象的类型。</param>
/// <param name="settingName">要获取游戏配置项的名称。</param>
/// <param name="defaultObj">当指定的游戏配置项不存在时,返回此默认对象。</param>
/// <returns>读取的对象。</returns>
public override object GetObject(Type objectType, string settingName, object defaultObj)
{
throw new GameFrameworkException("func is invalid.");
}

/// <summary>
/// 向指定游戏配置项写入对象。
/// </summary>
/// <typeparam name="T">要写入对象的类型。</typeparam>
/// <param name="settingName">要写入游戏配置项的名称。</param>
/// <param name="obj">要写入的对象。</param>
public override void SetObject<T>(string settingName, T obj)
{
ES3.Save<T>(settingName,obj);
}

/// <summary>
/// 向指定游戏配置项写入对象。
/// </summary>
/// <param name="settingName">要写入游戏配置项的名称。</param>
/// <param name="obj">要写入的对象。</param>
public override void SetObject(string settingName, object obj)
{
ES3.Save<object>(settingName, obj);
}
}
}



TEngine--Setting模块
https://www.liu2dream.fun/post/TEngine--Setting模块/
作者
刘老师 MrLiu
发布于
2024年7月1日
许可协议