From cd4a1e8c8997682972eaa5fdffa7ff1c98a4f4e8 Mon Sep 17 00:00:00 2001 From: gaoxin Date: Wed, 24 Feb 2021 13:53:11 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/Manager/ConfigManager.cs | 59 +++++++++++++++++-- Assets/Resources/config.txt | 3 +- 2 files changed, 55 insertions(+), 7 deletions(-) diff --git a/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs b/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs index e2c83228e2..7a9fd21226 100644 --- a/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs +++ b/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs @@ -23,24 +23,73 @@ namespace GameLogic public string GetInfo(string key) { - if (info.ContainsKey(key)) + string[] ks = key.Split('.'); + Hashtable ins = info; + for (int i = 0; i < ks.Length; i++) { - return info[key] as string; + string k = ks[i]; + if (!ins.ContainsKey(k)) + { + break; + } + // 没有下一个值直接返回 + if (i + 1 == ks.Length) + { + return ins[k] as string; + } + else + { + ins = ins[k] as Hashtable; + } } + return null; } public void RemoveInfo(string key) { - if (info.ContainsKey(key)) + string[] ks = key.Split('.'); + Hashtable ins = info; + for (int i = 0; i < ks.Length; i++) { - info.Remove(key); + string k = ks[i]; + if (!ins.ContainsKey(k)) + { + break; + } + // + if (i + 1 == ks.Length) + { + ins.Remove(k); + } + else + { + ins = ins[k] as Hashtable; + } } } public void SetInfo(string key, string value) { - info[key] = value; + string[] ks = key.Split('.'); + Hashtable ins = info; + for (int i = 0; i < ks.Length; i++) + { + string k = ks[i]; + if (!ins.ContainsKey(k)) + { + break; + } + // + if (i + 1 == ks.Length) + { + ins[k] = value; + } + else + { + ins = ins[k] as Hashtable; + } + } } } public class ConfigManager : Singleton diff --git a/Assets/Resources/config.txt b/Assets/Resources/config.txt index 102f62cff6..1edcd25f8e 100644 --- a/Assets/Resources/config.txt +++ b/Assets/Resources/config.txt @@ -2,9 +2,8 @@ "buglyId":"261348dcd3", "channel":"pc", "serverUrl":"http://60.1.1.23:8080/", - "func":{ -"Func_1":{"desc":"", "versionCode:"", isActive:""} + "Func_1":{"desc":"test", "versionCode":"123", "isActive":"1"} } } \ No newline at end of file