Skip to content

Commit dc41a6f

Browse files
author
Jiang Yin
committed
数据表、全局配置、本地化相关加载重构
1 parent 501d5a0 commit dc41a6f

33 files changed

+552
-1288
lines changed

Scripts/Editor/ResourceEditor/ResourceEditor.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -796,15 +796,15 @@ private void RefreshResourceTree()
796796
Resource[] resources = m_Controller.GetResources();
797797
foreach (Resource resource in resources)
798798
{
799-
string[] splitPath = resource.Name.Split('/');
799+
string[] splitedPath = resource.Name.Split('/');
800800
ResourceFolder folder = m_ResourceRoot;
801-
for (int i = 0; i < splitPath.Length - 1; i++)
801+
for (int i = 0; i < splitedPath.Length - 1; i++)
802802
{
803-
ResourceFolder subFolder = folder.GetFolder(splitPath[i]);
804-
folder = subFolder == null ? folder.AddFolder(splitPath[i]) : subFolder;
803+
ResourceFolder subFolder = folder.GetFolder(splitedPath[i]);
804+
folder = subFolder == null ? folder.AddFolder(splitedPath[i]) : subFolder;
805805
}
806806

807-
string fullName = resource.Variant != null ? Utility.Text.Format("{0}.{1}", splitPath[splitPath.Length - 1], resource.Variant) : splitPath[splitPath.Length - 1];
807+
string fullName = resource.Variant != null ? Utility.Text.Format("{0}.{1}", splitedPath[splitedPath.Length - 1], resource.Variant) : splitedPath[splitedPath.Length - 1];
808808
folder.AddItem(fullName, resource);
809809
}
810810
}

Scripts/Editor/ResourceEditor/ResourceEditorController.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -562,15 +562,15 @@ public void ScanSourceAssets()
562562
}
563563

564564
string assetPath = fullPath.Substring(SourceAssetRootPath.Length + 1);
565-
string[] splitPath = assetPath.Split('/');
565+
string[] splitedPath = assetPath.Split('/');
566566
SourceFolder folder = m_SourceAssetRoot;
567-
for (int i = 0; i < splitPath.Length - 1; i++)
567+
for (int i = 0; i < splitedPath.Length - 1; i++)
568568
{
569-
SourceFolder subFolder = folder.GetFolder(splitPath[i]);
570-
folder = subFolder == null ? folder.AddFolder(splitPath[i]) : subFolder;
569+
SourceFolder subFolder = folder.GetFolder(splitedPath[i]);
570+
folder = subFolder == null ? folder.AddFolder(splitedPath[i]) : subFolder;
571571
}
572572

573-
SourceAsset asset = folder.AddAsset(guid, fullPath, splitPath[splitPath.Length - 1]);
573+
SourceAsset asset = folder.AddAsset(guid, fullPath, splitedPath[splitedPath.Length - 1]);
574574
m_SourceAssets.Add(asset.Guid, asset);
575575
}
576576
}

Scripts/Runtime/Config/ConfigComponent.cs

Lines changed: 34 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,17 @@ protected override void Awake()
6161
return;
6262
}
6363

64-
m_ConfigManager.LoadConfigSuccess += OnLoadConfigSuccess;
65-
m_ConfigManager.LoadConfigFailure += OnLoadConfigFailure;
64+
m_ConfigManager.ReadDataSuccess += OnReadDataSuccess;
65+
m_ConfigManager.ReadDataFailure += OnReadDataFailure;
6666

6767
if (m_EnableLoadConfigUpdateEvent)
6868
{
69-
m_ConfigManager.LoadConfigUpdate += OnLoadConfigUpdate;
69+
m_ConfigManager.ReadDataUpdate += OnReadDataUpdate;
7070
}
7171

7272
if (m_EnableLoadConfigDependencyAssetEvent)
7373
{
74-
m_ConfigManager.LoadConfigDependencyAsset += OnLoadConfigDependencyAsset;
74+
m_ConfigManager.ReadDataDependencyAsset += OnReadDataDependencyAsset;
7575
}
7676
}
7777

@@ -112,67 +112,58 @@ private void Start()
112112
transform.SetParent(this.transform);
113113
transform.localScale = Vector3.one;
114114

115+
m_ConfigManager.SetDataProviderHelper(configHelper);
115116
m_ConfigManager.SetConfigHelper(configHelper);
116117
}
117118

118119
/// <summary>
119-
/// 加载全局配置
120+
/// 读取全局配置
120121
/// </summary>
121-
/// <param name="configName">全局配置名称。</param>
122122
/// <param name="configAssetName">全局配置资源名称。</param>
123-
public void LoadConfig(string configName, string configAssetName)
123+
public void ReadData(string configAssetName)
124124
{
125-
LoadConfig(configName, configAssetName, DefaultPriority, null);
125+
m_ConfigManager.ReadData(configAssetName);
126126
}
127127

128128
/// <summary>
129-
/// 加载全局配置
129+
/// 读取全局配置
130130
/// </summary>
131-
/// <param name="configName">全局配置名称。</param>
132131
/// <param name="configAssetName">全局配置资源名称。</param>
133132
/// <param name="priority">加载全局配置资源的优先级。</param>
134-
public void LoadConfig(string configName, string configAssetName, int priority)
133+
public void ReadData(string configAssetName, int priority)
135134
{
136-
LoadConfig(configName, configAssetName, priority, null);
135+
m_ConfigManager.ReadData(configAssetName, priority);
137136
}
138137

139138
/// <summary>
140-
/// 加载全局配置
139+
/// 读取全局配置
141140
/// </summary>
142-
/// <param name="configName">全局配置名称。</param>
143141
/// <param name="configAssetName">全局配置资源名称。</param>
144142
/// <param name="userData">用户自定义数据。</param>
145-
public void LoadConfig(string configName, string configAssetName, object userData)
143+
public void ReadData(string configAssetName, object userData)
146144
{
147-
LoadConfig(configName, configAssetName, DefaultPriority, userData);
145+
m_ConfigManager.ReadData(configAssetName, userData);
148146
}
149147

150148
/// <summary>
151-
/// 加载全局配置
149+
/// 读取全局配置
152150
/// </summary>
153-
/// <param name="configName">全局配置名称。</param>
154151
/// <param name="configAssetName">全局配置资源名称。</param>
155152
/// <param name="priority">加载全局配置资源的优先级。</param>
156153
/// <param name="userData">用户自定义数据。</param>
157-
public void LoadConfig(string configName, string configAssetName, int priority, object userData)
154+
public void ReadData(string configAssetName, int priority, object userData)
158155
{
159-
if (string.IsNullOrEmpty(configName))
160-
{
161-
Log.Error("Config name is invalid.");
162-
return;
163-
}
164-
165-
m_ConfigManager.LoadConfig(configAssetName, priority, LoadConfigInfo.Create(configName, userData));
156+
m_ConfigManager.ReadData(configAssetName, priority, userData);
166157
}
167158

168159
/// <summary>
169160
/// 解析全局配置。
170161
/// </summary>
171162
/// <param name="configString">要解析的全局配置字符串。</param>
172163
/// <returns>是否解析全局配置成功。</returns>
173-
public bool ParseConfig(string configString)
164+
public bool ParseData(string configString)
174165
{
175-
return m_ConfigManager.ParseConfig(configString);
166+
return m_ConfigManager.ParseData(configString);
176167
}
177168

178169
/// <summary>
@@ -181,19 +172,19 @@ public bool ParseConfig(string configString)
181172
/// <param name="configString">要解析的全局配置字符串。</param>
182173
/// <param name="userData">用户自定义数据。</param>
183174
/// <returns>是否解析全局配置成功。</returns>
184-
public bool ParseConfig(string configString, object userData)
175+
public bool ParseData(string configString, object userData)
185176
{
186-
return m_ConfigManager.ParseConfig(configString, userData);
177+
return m_ConfigManager.ParseData(configString, userData);
187178
}
188179

189180
/// <summary>
190181
/// 解析全局配置。
191182
/// </summary>
192183
/// <param name="configBytes">要解析的全局配置二进制流。</param>
193184
/// <returns>是否解析全局配置成功。</returns>
194-
public bool ParseConfig(byte[] configBytes)
185+
public bool ParseData(byte[] configBytes)
195186
{
196-
return m_ConfigManager.ParseConfig(configBytes);
187+
return m_ConfigManager.ParseData(configBytes);
197188
}
198189

199190
/// <summary>
@@ -202,9 +193,9 @@ public bool ParseConfig(byte[] configBytes)
202193
/// <param name="configBytes">要解析的全局配置二进制流。</param>
203194
/// <param name="userData">用户自定义数据。</param>
204195
/// <returns>是否解析全局配置成功。</returns>
205-
public bool ParseConfig(byte[] configBytes, object userData)
196+
public bool ParseData(byte[] configBytes, object userData)
206197
{
207-
return m_ConfigManager.ParseConfig(configBytes, userData);
198+
return m_ConfigManager.ParseData(configBytes, userData);
208199
}
209200

210201
/// <summary>
@@ -214,9 +205,9 @@ public bool ParseConfig(byte[] configBytes, object userData)
214205
/// <param name="startIndex">全局配置二进制流的起始位置。</param>
215206
/// <param name="length">全局配置二进制流的长度。</param>
216207
/// <returns>是否解析全局配置成功。</returns>
217-
public bool ParseConfig(byte[] configBytes, int startIndex, int length)
208+
public bool ParseData(byte[] configBytes, int startIndex, int length)
218209
{
219-
return m_ConfigManager.ParseConfig(configBytes, startIndex, length);
210+
return m_ConfigManager.ParseData(configBytes, startIndex, length);
220211
}
221212

222213
/// <summary>
@@ -227,9 +218,9 @@ public bool ParseConfig(byte[] configBytes, int startIndex, int length)
227218
/// <param name="length">全局配置二进制流的长度。</param>
228219
/// <param name="userData">用户自定义数据。</param>
229220
/// <returns>是否解析全局配置成功。</returns>
230-
public bool ParseConfig(byte[] configBytes, int startIndex, int length, object userData)
221+
public bool ParseData(byte[] configBytes, int startIndex, int length, object userData)
231222
{
232-
return m_ConfigManager.ParseConfig(configBytes, startIndex, length, userData);
223+
return m_ConfigManager.ParseData(configBytes, startIndex, length, userData);
233224
}
234225

235226
/// <summary>
@@ -358,23 +349,23 @@ public void RemoveAllConfigs()
358349
m_ConfigManager.RemoveAllConfigs();
359350
}
360351

361-
private void OnLoadConfigSuccess(object sender, GameFramework.Config.LoadConfigSuccessEventArgs e)
352+
private void OnReadDataSuccess(object sender, ReadDataSuccessEventArgs e)
362353
{
363354
m_EventComponent.Fire(this, LoadConfigSuccessEventArgs.Create(e));
364355
}
365356

366-
private void OnLoadConfigFailure(object sender, GameFramework.Config.LoadConfigFailureEventArgs e)
357+
private void OnReadDataFailure(object sender, ReadDataFailureEventArgs e)
367358
{
368-
Log.Warning("Load config failure, asset name '{0}', error message '{1}'.", e.ConfigAssetName, e.ErrorMessage);
359+
Log.Warning("Load config failure, asset name '{0}', error message '{1}'.", e.DataAssetName, e.ErrorMessage);
369360
m_EventComponent.Fire(this, LoadConfigFailureEventArgs.Create(e));
370361
}
371362

372-
private void OnLoadConfigUpdate(object sender, GameFramework.Config.LoadConfigUpdateEventArgs e)
363+
private void OnReadDataUpdate(object sender, ReadDataUpdateEventArgs e)
373364
{
374365
m_EventComponent.Fire(this, LoadConfigUpdateEventArgs.Create(e));
375366
}
376367

377-
private void OnLoadConfigDependencyAsset(object sender, GameFramework.Config.LoadConfigDependencyAssetEventArgs e)
368+
private void OnReadDataDependencyAsset(object sender, ReadDataDependencyAssetEventArgs e)
378369
{
379370
m_EventComponent.Fire(this, LoadConfigDependencyAssetEventArgs.Create(e));
380371
}

Scripts/Runtime/Config/ConfigHelperBase.cs

Lines changed: 22 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
// Feedback: mailto:[email protected]
66
//------------------------------------------------------------
77

8+
using GameFramework;
89
using GameFramework.Config;
910
using UnityEngine;
1011

@@ -13,80 +14,55 @@ namespace UnityGameFramework.Runtime
1314
/// <summary>
1415
/// 全局配置辅助器基类。
1516
/// </summary>
16-
public abstract class ConfigHelperBase : MonoBehaviour, IConfigHelper
17+
public abstract class ConfigHelperBase : MonoBehaviour, IDataProviderHelper<IConfigManager>, IConfigHelper
1718
{
1819
/// <summary>
19-
/// 加载全局配置
20+
/// 读取全局配置
2021
/// </summary>
22+
/// <param name="configManager">全局配置管理器。</param>
2123
/// <param name="configAssetName">全局配置资源名称。</param>
2224
/// <param name="configAsset">全局配置资源。</param>
2325
/// <param name="userData">用户自定义数据。</param>
24-
/// <returns>是否加载成功。</returns>
25-
public bool LoadConfig(string configAssetName, object configAsset, object userData)
26-
{
27-
LoadConfigInfo loadConfigInfo = (LoadConfigInfo)userData;
28-
return LoadConfig(loadConfigInfo.ConfigName, configAssetName, configAsset, loadConfigInfo.UserData);
29-
}
26+
/// <returns>是否读取全局配置成功。</returns>
27+
public abstract bool ReadData(IConfigManager configManager, string configAssetName, object configAsset, object userData);
3028

3129
/// <summary>
32-
/// 加载全局配置
30+
/// 读取全局配置
3331
/// </summary>
32+
/// <param name="configManager">全局配置管理器。</param>
3433
/// <param name="configAssetName">全局配置资源名称。</param>
35-
/// <param name="configBytes">全局配置二进制数据。</param>
36-
/// <param name="startIndex">全局配置二进制数据的起始位置。</param>
37-
/// <param name="length">全局配置二进制数据的长度。</param>
34+
/// <param name="configBytes">全局配置二进制流。</param>
35+
/// <param name="startIndex">全局配置二进制流的起始位置。</param>
36+
/// <param name="length">全局配置二进制流的长度。</param>
3837
/// <param name="userData">用户自定义数据。</param>
39-
/// <returns>是否加载成功。</returns>
40-
public bool LoadConfig(string configAssetName, byte[] configBytes, int startIndex, int length, object userData)
41-
{
42-
LoadConfigInfo loadConfigInfo = (LoadConfigInfo)userData;
43-
return LoadConfig(loadConfigInfo.ConfigName, configAssetName, configBytes, startIndex, length, loadConfigInfo.UserData);
44-
}
38+
/// <returns>是否读取全局配置成功。</returns>
39+
public abstract bool ReadData(IConfigManager configManager, string configAssetName, byte[] configBytes, int startIndex, int length, object userData);
4540

4641
/// <summary>
4742
/// 解析全局配置。
4843
/// </summary>
44+
/// <param name="configManager">全局配置管理器。</param>
4945
/// <param name="configString">要解析的全局配置字符串。</param>
5046
/// <param name="userData">用户自定义数据。</param>
5147
/// <returns>是否解析全局配置成功。</returns>
52-
public abstract bool ParseConfig(string configString, object userData);
48+
public abstract bool ParseData(IConfigManager configManager, string configString, object userData);
5349

5450
/// <summary>
5551
/// 解析全局配置。
5652
/// </summary>
57-
/// <param name="configBytes">要解析的全局配置二进制数据。</param>
58-
/// <param name="startIndex">全局配置二进制数据的起始位置。</param>
59-
/// <param name="length">全局配置二进制数据的长度。</param>
53+
/// <param name="configManager">全局配置管理器。</param>
54+
/// <param name="configBytes">要解析的全局配置二进制流。</param>
55+
/// <param name="startIndex">全局配置二进制流的起始位置。</param>
56+
/// <param name="length">全局配置二进制流的长度。</param>
6057
/// <param name="userData">用户自定义数据。</param>
6158
/// <returns>是否解析全局配置成功。</returns>
62-
public abstract bool ParseConfig(byte[] configBytes, int startIndex, int length, object userData);
59+
public abstract bool ParseData(IConfigManager configManager, byte[] configBytes, int startIndex, int length, object userData);
6360

6461
/// <summary>
6562
/// 释放全局配置资源。
6663
/// </summary>
64+
/// <param name="configManager">全局配置管理器。</param>
6765
/// <param name="configAsset">要释放的全局配置资源。</param>
68-
public abstract void ReleaseConfigAsset(object configAsset);
69-
70-
/// <summary>
71-
/// 加载全局配置。
72-
/// </summary>
73-
/// <param name="configName">全局配置名称。</param>
74-
/// <param name="configAssetName">全局配置资源名称。</param>
75-
/// <param name="configAsset">全局配置资源。</param>
76-
/// <param name="userData">用户自定义数据。</param>
77-
/// <returns>是否加载成功。</returns>
78-
protected abstract bool LoadConfig(string configName, string configAssetName, object configAsset, object userData);
79-
80-
/// <summary>
81-
/// 加载全局配置。
82-
/// </summary>
83-
/// <param name="configName">全局配置名称。</param>
84-
/// <param name="configAssetName">全局配置资源名称。</param>
85-
/// <param name="configBytes">全局配置二进制数据。</param>
86-
/// <param name="startIndex">全局配置二进制数据的起始位置。</param>
87-
/// <param name="length">全局配置二进制数据的长度。</param>
88-
/// <param name="userData">用户自定义数据。</param>
89-
/// <returns>是否加载成功。</returns>
90-
protected abstract bool LoadConfig(string configName, string configAssetName, byte[] configBytes, int startIndex, int length, object userData);
66+
public abstract void ReleaseDataAsset(IConfigManager configManager, object configAsset);
9167
}
9268
}

0 commit comments

Comments
 (0)