找回密码
 注册帐号

扫一扫,访问微社区

yukuyoulei 极易使用的配置管理器

46
回复
6740
查看
[ 复制链接 ]
排名
60
昨日变化

3694

主题

4568

帖子

1万

积分

Rank: 9Rank: 9Rank: 9

UID
287
好友
45
蛮牛币
3875
威望
30
注册时间
2013-6-9
在线时间
2187 小时
最后登录
2019-6-17

七夕浪漫情人活力之星原创先锋认证开发者

QQ
2018-6-6 14:36:41 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 yukuyoulei 于 2018-6-6 14:39 编辑

最近客串了好长一段时间客户端程序员了,心好累,各位客户端前辈们你们辛苦了,真心的。

加载配置表应该算是所有游戏项目必不可少的功能了,之前项目里用到的加载配置的方式都比较单一,要不然就是只能从Resource里加载,要不然就是只能从AssetBundle里加载,一旦需要两者兼备的时候,就很头疼,所以自己写了一个,丢掉历史包袱的感觉超级好。

我写的这个配置管理器的功能是在编辑器模式在从Resources目录下加载配置,打出的包要从AssetBundle里面加载,如果各位不需要的话,直接在DownloadConfigs里面注释掉LoadLocalConfig之外的所有行就好了,这个应该很简单,我就不多说了。

RegistAllLoadFuncs()方法里面注册的是一个传string参数的方法,这个应该也很明显,具体的实现每个项目应该都有自己的一套,我们的项目都是csv格式,大家自己实现就好了。

废话不多说,直接上代码。
[C#] 纯文本查看 复制代码
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UConfigManager : MonoBehaviour
{
        private static UConfigManager mInstance;
        public static UConfigManager Instance
        {
                get
                {
                        if (mInstance == null)
                        {
                                GameObject go = new GameObject("UConfigManager");
                                DontDestroyOnLoad(go);
                                mInstance = go.AddComponent<UConfigManager>();
                        }
                        return mInstance;
                }
        }
        public void Init() { }

        private Dictionary<string, Action<string>> dExcelLoaders = new Dictionary<string, Action<string>>();
        private void RegistLoadFunc(string sExcelName, Action<string> func)
        {
                dExcelLoaders.Add(sExcelName, func);
        }
        private void RegistAllLoadFuncs()
        {
                /*RegistLoadFunc("Levels", ULoaderLevel.Instance.LoadData);
                RegistLoadFunc("Localization", ULoaderLocalization.Instance.LoadData);*/
        }
        void Awake()
        {
                mInstance = this;

                RegistAllLoadFuncs();

                DownloadConfigs();
        }

        private void DownloadConfigs()
        {
#if UNITY_EDITOR
                LoadLocalConfig();
#else
                StartCoroutine(DoDownload());
#endif
        }

        public static string DownLoadConfigPath = "http://192.168.1.100/configs/configs.assetbundle";
        private IEnumerator DoDownload()
        {
                var www = new WWW(DownLoadConfigPath);
                yield return www;
                if (string.IsNullOrEmpty(www.error))
                {
                        var ab = www.assetBundle;
                        LoadAssetBundle(ab);
                        ab.Unload(true);
                }
                else
                {
                        Debug.Log("加载远端配置失败,正在加载本地配置。");
                        LoadLocalConfig();
                }
                www.Dispose();
        }

        private void LoadAssetBundle(AssetBundle ab)
        {
                Debug.Log("下载远端配置成功,正在加载远端配置。");
                foreach (var s in dExcelLoaders.Keys)
                {
                        var text = ab.LoadAsset(s) as TextAsset;
                        if (text == null)
                        {
                                Debug.Log("Cannot load " + s + " from asset bundle");
                                continue;
                        }
                        dExcelLoaders[s](text.text);
                }

        }

        private void LoadLocalConfig()
        {
                foreach (var s in dExcelLoaders.Keys)
                {
                        var text = Resources.Load<TextAsset>("Configs/" + s);
                        if (text == null)
                        {
                                Debug.Log("Cannot load " + s + " from local");
                                continue;
                        }
                        dExcelLoaders[s](text.text);
                }
        }
}



剩下的就是在合适的时机,调用
[C#] 纯文本查看 复制代码
UConfigManager.Instance.Init();


Enjoy~
TIM图片20180606143823.png

参与人数 1鲜花 +5 收起 理由
lilexy + 5 大佬,让我来解放你的客户端吧.

查看全部评分总评分 : 鲜花 +5

回复

使用道具 举报

7日久生情
3768/5000
排名
1487
昨日变化

0

主题

2142

帖子

3768

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
219676
好友
1
蛮牛币
3560
威望
0
注册时间
2017-7-12
在线时间
772 小时
最后登录
2019-6-20

活力之星

2018-6-6 15:20:24 显示全部楼层
谢谢分享
回复

使用道具 举报

6蛮牛粉丝
1356/1500
排名
2949
昨日变化

2

主题

493

帖子

1356

积分

Rank: 6Rank: 6Rank: 6

UID
220310
好友
1
蛮牛币
2295
威望
0
注册时间
2017-5-2
在线时间
361 小时
最后登录
2019-4-25
2018-6-7 10:48:53 显示全部楼层
回复

使用道具 举报

5熟悉之中
878/1000
排名
4149
昨日变化

14

主题

247

帖子

878

积分

Rank: 5Rank: 5

UID
231366
好友
9
蛮牛币
1789
威望
0
注册时间
2017-7-10
在线时间
261 小时
最后登录
2019-6-18
2018-6-7 11:30:33 显示全部楼层
6666666666{:104:}{:104:}{:104:}{:104:}{:104:}
回复 支持 反对

使用道具 举报

7日久生情
1878/5000
排名
1192
昨日变化

0

主题

551

帖子

1878

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
87577
好友
0
蛮牛币
7023
威望
0
注册时间
2015-3-31
在线时间
349 小时
最后登录
2019-6-20

锦衣玉食

2018-6-8 09:22:44 显示全部楼层
too good too strong!
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1281/1500
排名
2666
昨日变化

0

主题

260

帖子

1281

积分

Rank: 6Rank: 6Rank: 6

UID
279508
好友
0
蛮牛币
2116
威望
0
注册时间
2018-5-2
在线时间
475 小时
最后登录
2019-5-10
2018-6-8 09:27:54 显示全部楼层

是好东西吗
回复

使用道具 举报

5熟悉之中
948/1000
排名
3009
昨日变化

3

主题

128

帖子

948

积分

Rank: 5Rank: 5

UID
129262
好友
1
蛮牛币
365
威望
0
注册时间
2015-11-18
在线时间
323 小时
最后登录
2019-5-29
2018-6-8 10:45:50 显示全部楼层
66666666666666666
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1194/1500
排名
2332
昨日变化

1

主题

166

帖子

1194

积分

Rank: 6Rank: 6Rank: 6

UID
236305
好友
1
蛮牛币
1671
威望
0
注册时间
2017-8-7
在线时间
419 小时
最后登录
2019-6-20
2018-6-11 09:53:26 显示全部楼层
前来学习一下 谢谢!
回复 支持 反对

使用道具 举报

3偶尔光临
229/300
排名
9014
昨日变化

0

主题

43

帖子

229

积分

Rank: 3Rank: 3Rank: 3

UID
277005
好友
0
蛮牛币
311
威望
0
注册时间
2018-4-13
在线时间
58 小时
最后登录
2018-11-6
2018-6-11 15:29:14 显示全部楼层
感谢分享
回复

使用道具 举报

排名
39859
昨日变化

0

主题

8

帖子

22

积分

Rank: 1

UID
245294
好友
0
蛮牛币
28
威望
0
注册时间
2017-9-21
在线时间
8 小时
最后登录
2019-2-22
2018-6-12 15:15:51 显示全部楼层
非常好的资源
回复

使用道具 举报

7日久生情
2750/5000
排名
664
昨日变化

30

主题

577

帖子

2750

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
124569
好友
25
蛮牛币
7553
威望
0
注册时间
2015-10-4
在线时间
817 小时
最后登录
2019-5-24
2018-6-13 07:53:24 显示全部楼层
这个很好,谢谢分享
回复 支持 反对

使用道具 举报

5熟悉之中
534/1000
排名
3723
昨日变化

0

主题

11

帖子

534

积分

Rank: 5Rank: 5

UID
177397
好友
0
蛮牛币
1257
威望
0
注册时间
2016-10-22
在线时间
119 小时
最后登录
2019-4-9
2018-6-14 09:00:33 显示全部楼层
感谢分享!学习学习!
回复 支持 反对

使用道具 举报

排名
21326
昨日变化

0

主题

9

帖子

67

积分

Rank: 2Rank: 2

UID
214890
好友
0
蛮牛币
17
威望
0
注册时间
2017-3-28
在线时间
34 小时
最后登录
2018-10-31
2018-6-19 22:07:14 显示全部楼层
ASDASF啊实打实大苏打
回复 支持 反对

使用道具 举报

3偶尔光临
226/300
排名
11987
昨日变化

6

主题

56

帖子

226

积分

Rank: 3Rank: 3Rank: 3

UID
285778
好友
0
蛮牛币
1174
威望
0
注册时间
2018-6-14
在线时间
78 小时
最后登录
2019-5-17
2018-6-22 10:07:37 显示全部楼层

too good too strong!
回复 支持 反对

使用道具 举报

7日久生情
2554/5000
排名
1542
昨日变化

1

主题

955

帖子

2554

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
216583
好友
2
蛮牛币
4333
威望
0
注册时间
2017-4-7
在线时间
770 小时
最后登录
2019-6-20
2018-6-25 10:30:20 显示全部楼层
多谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则