diff --git a/AssetBundles/config.txt b/AssetBundles/config.txt new file mode 100644 index 0000000000..c559bb5061 --- /dev/null +++ b/AssetBundles/config.txt @@ -0,0 +1 @@ +{"channel":"MHT", "Setting":{"LanguagePackager":{"desc":"\u672c\u5730\u5316\u5904\u7406", "versionCode":"26", "isActive":"1"}, "ServerVersion":{"desc":"\u7528\u4e8e\u5207\u6362\u6b63\u5f0f\u670d\u548c\u63d0\u5ba1\u670d", "value":"1", "versionCode":"26", "isActive":"1"}, "ThinkAnalysis_GetDeviceID":{"desc":"\u6570\u6570\u83b7\u53d6DeviceID\u65b9\u6cd5", "versionCode":"24", "isActive":"1"}, "LayoutBuilderWrap":{"desc":"\u5f3a\u5236\u5237\u65b0layout\u7ec4\u4ef6\u5927\u5c0f\u7684\u65b9\u6cd5\u4fee\u6539\u5230lua\u4e2d\u8c03\u7528", "versionCode":"25", "isActive":"1"}}, "subChannel":"2000", "serverUrl":"http://119.28.117.110:8080/"} \ No newline at end of file diff --git a/AssetBundles/version.txt b/AssetBundles/version.txt index 5db4eddf36..e7e73835a5 100644 --- a/AssetBundles/version.txt +++ b/AssetBundles/version.txt @@ -1 +1 @@ -{"subChannel":"1", "buglyId":"261348dcd3", "channel":"pc", "resUrl":"http://jl.tyu89.wang/mht/en/", "packageVersion":"0.1", "version":"0.1.1", "serverUrl":"http://42.193.191.129:8080/"} \ No newline at end of file +{"subChannel":"1", "buglyId":"261348dcd3", "channel":"pc", "resUrl":"http://60.1.1.12/jieling_dl/dev/assetBundles/subChannal094-test/", "packageVersion":"0.2", "version":"0.15.0", "serverUrl":"http://60.1.1.23:8080/"} \ No newline at end of file diff --git a/Assets/LuaFramework/Scripts/ConstDefine/AppConst.cs b/Assets/LuaFramework/Scripts/ConstDefine/AppConst.cs index cc239a6a3c..d05cf15bff 100644 --- a/Assets/LuaFramework/Scripts/ConstDefine/AppConst.cs +++ b/Assets/LuaFramework/Scripts/ConstDefine/AppConst.cs @@ -164,8 +164,9 @@ namespace GameLogic public static string LaQi_JoinRoom_Url = string.Empty; //拉起应用链接 - public const string LoadingMD5Flie = "files.txt"; //加载界面更新MD5文件 - public const string GameVersionFile = "version.txt"; //游戏版本号文件 + public const string LoadingMD5Flie = "files.txt"; //加载界面更新MD5文件 + public const string GameVersionFile = "version.txt"; //游戏版本号文件 + public const string GameConfigFile = "config.txt"; //游戏版本号文件 public static int UserId; //用户ID public static int Token; //用户Token diff --git a/Assets/LuaFramework/Scripts/Framework/App.cs b/Assets/LuaFramework/Scripts/Framework/App.cs index 343bc0ecfc..f5b47afc24 100644 --- a/Assets/LuaFramework/Scripts/Framework/App.cs +++ b/Assets/LuaFramework/Scripts/Framework/App.cs @@ -180,12 +180,23 @@ public class App : UnitySingleton return VersionManager.Instance; } } + /// + /// 配置数据管理器管理器 + /// + public static ConfigManager ConfigMgr + { + get + { + return ConfigManager.Instance; + } + } /// /// 初始化 /// public void Initialize() { + ConfigMgr.Init(); VersionMgr.Initialize(); } diff --git a/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs b/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs new file mode 100644 index 0000000000..d97860d314 --- /dev/null +++ b/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs @@ -0,0 +1,172 @@ +using UnityEngine; +using UnityEditor; +using GameCore; +using System.Collections; +using System.IO; +using System; + +namespace GameLogic +{ + public class MConfig + { + Hashtable info; + + public MConfig(string json) + { + info = MiniJSON.jsonDecode(json) as Hashtable; + } + + public string ToJson() + { + return MiniJSON.jsonEncode(info); + } + + public string GetInfo(string key) + { + 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) + { + return ins[k] as string; + } + else + { + ins = ins[k] as Hashtable; + } + } + + return null; + } + + public void RemoveInfo(string key) + { + 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.Remove(k); + } + else + { + ins = ins[k] as Hashtable; + } + } + } + + public void SetInfo(string key, string 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 + { + + /// + /// 版本号文件 + /// + const string configFile = "config"; + /// + /// 版本文件路径 + /// + string configFilePath + { + get + { + return AppConst.PersistentDataPath + configFile + ".txt"; + } + } + + MConfig NetInfo; + // 初始化 获取本地的数据 + public void Init() + { + try + { + if (File.Exists(configFilePath)) + { + NetInfo = new MConfig(File.ReadAllText(configFilePath, System.Text.Encoding.UTF8)); + } + } + catch (Exception e) + { + Debug.LogError(e); + } + } + + public void SetNetInfo(string info) + { + + try + { + NetInfo = new MConfig(info); + SaveToFiles(); + } + catch (Exception e) + { + Debug.LogError(e); + } + } + + /// + /// 保存到文件 + /// + void SaveToFiles() + { + string directoryPath = Path.GetDirectoryName(configFilePath); + if (!Directory.Exists(directoryPath)) Directory.CreateDirectory(directoryPath); + File.WriteAllText(configFilePath, NetInfo.ToJson(), System.Text.Encoding.UTF8); + } + + /// + /// + /// + /// + /// + public string GetConfigInfo(string key) + { + string v = GetConfigNetInfo(key); + if (v != null) return v; + return null; + } + public string GetConfigNetInfo(string key) + { + if (NetInfo == null) return null; + string v = NetInfo.GetInfo(key); + return v; + } + } +} diff --git a/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs.meta b/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs.meta new file mode 100644 index 0000000000..690450a906 --- /dev/null +++ b/Assets/LuaFramework/Scripts/Manager/ConfigManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 252b072fc95a44740976d9126b5b4626 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua b/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua index 62dceb2085..c00c23d588 100644 --- a/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua +++ b/Assets/ManagedResources/~Lua/Common/GlobalDefine.lua @@ -5,7 +5,6 @@ * @Created by MagicianJoker --]] -SERVER_VERSION = 0 -- 0 正式服 1 提审服 -- 启用功能引导 ENABLE_FUNC_GUIDE = 1 --0关闭1开启 RECHARGEABLE = true --false不可充值 true可充值 diff --git a/Assets/ManagedResources/~Lua/Common/LanguageManager.lua b/Assets/ManagedResources/~Lua/Common/LanguageManager.lua index d074bd71d9..8041924813 100644 --- a/Assets/ManagedResources/~Lua/Common/LanguageManager.lua +++ b/Assets/ManagedResources/~Lua/Common/LanguageManager.lua @@ -1,5 +1,7 @@ languageDic={} +IsLanguagePack = ServerConfigManager.IsSettingActive(ServerConfigManager.SettingConfig.LanguagePackager) + function InitLanguageData() local languageData= ConfigManager.GetConfig(ConfigName.Language) for index, config in ConfigPairs(languageData) do @@ -13,4 +15,5 @@ function InitLanguageData() end LogGreen("语言初始化完成:"..tostring(#languageData)) end + InitLanguageData() \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Common/define.lua b/Assets/ManagedResources/~Lua/Common/define.lua index c7037a3457..44fda27d4f 100644 --- a/Assets/ManagedResources/~Lua/Common/define.lua +++ b/Assets/ManagedResources/~Lua/Common/define.lua @@ -21,6 +21,7 @@ RRenderMgr = App.RRenderMgr --shareSDKMgr = App.ShareSDKMgr SDKMgr = App.SDKMgr VersionManager=App.VersionMgr +ConfigMgr=App.ConfigMgr --umengsdk=App.UmengSdkMgr imageDownloadMgr = App.ImageDownloadMgr --BuglySdkManager=App.BuglySdkMgr @@ -33,7 +34,6 @@ Input = UnityEngine.Input Screen = UnityEngine.Screen RectTransformUtility = UnityEngine.RectTransformUtility LayoutUtility = UnityEngine.UI.LayoutUtility -LayoutRebuilder = UnityEngine.UI.LayoutRebuilder Tweening = DG.Tweening Ease = DG.Tweening.Ease diff --git a/Assets/ManagedResources/~Lua/Framework/Framework.lua b/Assets/ManagedResources/~Lua/Framework/Framework.lua index 5f4088ef5c..26ca2b106e 100644 --- a/Assets/ManagedResources/~Lua/Framework/Framework.lua +++ b/Assets/ManagedResources/~Lua/Framework/Framework.lua @@ -8,6 +8,7 @@ require "Framework/Manager/PoolManager" require "Framework/Manager/SoundManager" require "Framework/Manager/CardRendererManager" require "Framework/Manager/RoleRenderManager" +require "Framework/Manager/ServerConfigManager" require "Data/UIData" require "Data/SoundData" require "Data/ConfigData" @@ -89,6 +90,7 @@ function Framework. Initialize() UIManager.Initialize() poolManager = PoolManager:new() CardRendererManager.Initialize() + ServerConfigManager.Initialize() UpdateBeat:Add(update, Framework) end diff --git a/Assets/ManagedResources/~Lua/Framework/Manager/ServerConfigManager.lua b/Assets/ManagedResources/~Lua/Framework/Manager/ServerConfigManager.lua new file mode 100644 index 0000000000..9fe44ba1c7 --- /dev/null +++ b/Assets/ManagedResources/~Lua/Framework/Manager/ServerConfigManager.lua @@ -0,0 +1,60 @@ + +ServerConfigManager = { } +local _ActiveCode = 26 -- 激活版本 + +ServerConfigManager.SettingConfig = { + ServerVersion = "ServerVersion", -- 用于切换正式服和提审服 + ThinkAnalysis_GetDeviceID = "ThinkAnalysis_GetDeviceID", -- 数数获取DeviceID方法 + LayoutBuilderWrap = "LayoutBuilderWrap", -- 强制刷新layout组件大小的方法修改到lua中调用 + LanguagePackager = "LanguagePackager", -- 本地化处理 +} + + +function ServerConfigManager.Initialize() + +end + +-- 判断设置是否激活 +function ServerConfigManager.IsSettingActive(settingType) + local s_isActive = "Setting."..settingType..".isActive" + local s_versionCode = "Setting."..settingType..".versionCode" + local isActive = ServerConfigManager.GetConfigInfo(s_isActive) == "1" + if isActive then -- 激活 + if not AppConst.isSDK then + return true + end + local vc = AndroidDeviceInfo.Instance:GetVersionCode() + if vc >= tonumber(ServerConfigManager.GetConfigInfo(s_versionCode)) then --符合包版本 + return true + end + end + return false +end +function ServerConfigManager.GetSettingValue(settingType) + if ServerConfigManager.IsSettingActive(settingType) then + local s_value = "Setting."..settingType..".value" + local value = ServerConfigManager.GetConfigInfo(s_value) + LogGreen(s_value .. " | ".. value) + return value + end +end + +-- 获取version信息(老版本信息,新版中用于获取版本号,包版本号,) +function ServerConfigManager.GetVersionInfo(key) + -- 包版本大于启用的版本使用新的配置 + if not AppConst.isSDK or AndroidDeviceInfo.Instance:GetVersionCode() >= _ActiveCode then + local v = ServerConfigManager.GetConfigInfo(key) + if not v then + v = VersionManager:GetVersionInfo(key) + end + return v + else + return VersionManager:GetVersionInfo(key) + end +end + +-- +function ServerConfigManager.GetConfigInfo(key) + local s = ConfigMgr:GetConfigInfo(key) + return s +end \ No newline at end of file diff --git a/Assets/ManagedResources/~Lua/Framework/Manager/ServerConfigManager.lua.meta b/Assets/ManagedResources/~Lua/Framework/Manager/ServerConfigManager.lua.meta new file mode 100644 index 0000000000..f059a5f32c --- /dev/null +++ b/Assets/ManagedResources/~Lua/Framework/Manager/ServerConfigManager.lua.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 587696ae067d4004ba3b5b8c40e674e9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ManagedResources/~Lua/Logic/Network.lua b/Assets/ManagedResources/~Lua/Logic/Network.lua index 4f2be1fde3..49d93be8b3 100644 --- a/Assets/ManagedResources/~Lua/Logic/Network.lua +++ b/Assets/ManagedResources/~Lua/Logic/Network.lua @@ -222,31 +222,47 @@ function Network:ReceiveErrorInfo(buffer) if msg.errCode == -1 then LogError("Network ReceiveErrorInfo errDes:"..msg.errMsg) end - local errorCfg = ConfigManager.TryGetConfigData(ConfigName.ErrorCodeHint, msg.errCode) - if errorCfg then - if errorCfg.ShowType == 1 then --tips - PopupTipPanel.ShowTip(string.format(GetLanguageStrById(errorCfg.Desc), unpack(msg.errParams))) - elseif errorCfg.ShowType == 2 then --弹窗 - local contexts = string.split(GetLanguageStrById(errorCfg.Desc), "#") --标题#内容 - MsgPanel.ShowOne(string.format(contexts[2], unpack(msg.errParams)), nil, nil, contexts[1]) + + local desc, title = self:GetErrorTip(msg) + if msg.errCode == -101 or msg.errCode == -102 or msg.errCode == -103 then + if(Time.time- self.ReconnectTime<10)then + return + end + --被顶号或者被封号 + Game.Logout() + AppConst.Code = desc--TODO:重登会重置所有lua变量信息,用一个不用的C#变量记录,用于记录异常退出信息 + return + end + if desc then + if title then + MsgPanel.ShowOne(desc, nil, nil, title) else - PopupTipPanel.ShowTip(msg.errMsg) + PopupTipPanel.ShowTip(desc) end else - if msg.errCode == -101 or msg.errCode == -102 then - - if(Time.time- self.ReconnectTime<10)then - return - end - --被顶号或者被封号 - Game.Logout() - AppConst.Code = msg.errMsg --TODO:重登会重置所有lua变量信息,用一个不用的C#变量记录,用于记录异常退出信息 - else - PopupTipPanel.ShowTip(msg.errMsg) - end + PopupTipPanel.ShowTip(msg.errMsg) end end +function Network:GetErrorTip(msg) + local errorCfg = ConfigManager.TryGetConfigData(ConfigName.ErrorCodeHint, msg.errCode) + if errorCfg then + local params = {} + for i = 1, #msg.errParams do + table.insert(params, GetLanguageStrById(msg.errParams[i])) + end + if errorCfg.ShowType == 1 then --tips + return string.format(GetLanguageStrById(errorCfg.Desc), unpack(params)) + elseif errorCfg.ShowType == 2 then --弹窗 + local contexts = string.split(GetLanguageStrById(errorCfg.Desc), "#") --标题#内容 + return string.format(contexts[2], unpack(params)), contexts[1] + end + end + return msg.errMsg +end + + + --注册消息模块 function Network:RegisterMessage(nMsgId, pMessageHandle) self.socket:RegistNetMessage(nMsgId, pMessageHandle) diff --git a/Assets/ManagedResources/~Lua/Modules/DataCenterService/ThinkingAnalyticsManager.lua b/Assets/ManagedResources/~Lua/Modules/DataCenterService/ThinkingAnalyticsManager.lua index d39ff1e4f4..c6a78d8d63 100644 --- a/Assets/ManagedResources/~Lua/Modules/DataCenterService/ThinkingAnalyticsManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/DataCenterService/ThinkingAnalyticsManager.lua @@ -71,7 +71,7 @@ end -- 获取设备Id function this.GetDeviceId() if AppConst.isSDK then - if AndroidDeviceInfo.Instance:GetVersionCode() > 24 then + if ServerConfigManager.IsSettingActive(ServerConfigManager.SettingConfig.ThinkAnalysis_GetDeviceID) then return App.TAMgr:GetDeviceId() end return AndroidDeviceInfo.Instance:GetDeviceID() diff --git a/Assets/ManagedResources/~Lua/Modules/Guild/GuildInfoPopup.lua b/Assets/ManagedResources/~Lua/Modules/Guild/GuildInfoPopup.lua index 2f5f24973f..e640f7f851 100644 --- a/Assets/ManagedResources/~Lua/Modules/Guild/GuildInfoPopup.lua +++ b/Assets/ManagedResources/~Lua/Modules/Guild/GuildInfoPopup.lua @@ -249,11 +249,11 @@ end --界面打开时调用(用于子类重写) function GuildInfoPopup:OnOpen(...) this.RefreshShow() - LayoutRebuilder.ForceRebuildLayoutImmediate(this.layoutName.transform) - LayoutRebuilder.ForceRebuildLayoutImmediate(this.layoutLevel.transform) - LayoutRebuilder.ForceRebuildLayoutImmediate(this.layoutMaster.transform) - LayoutRebuilder.ForceRebuildLayoutImmediate(this.layoutMember.transform) - LayoutRebuilder.ForceRebuildLayoutImmediate(this.layoutDeclaration.transform) + ForceRebuildLayout(this.layoutName.transform) + ForceRebuildLayout(this.layoutLevel.transform) + ForceRebuildLayout(this.layoutMaster.transform) + ForceRebuildLayout(this.layoutMember.transform) + ForceRebuildLayout(this.layoutDeclaration.transform) end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) diff --git a/Assets/ManagedResources/~Lua/Modules/Login/LoginManager.lua b/Assets/ManagedResources/~Lua/Modules/Login/LoginManager.lua index 4a9cd70e96..c21dc6a4c6 100644 --- a/Assets/ManagedResources/~Lua/Modules/Login/LoginManager.lua +++ b/Assets/ManagedResources/~Lua/Modules/Login/LoginManager.lua @@ -7,7 +7,7 @@ this.IsLogin = false this.pt_pId = "" this.pt_gId = "" -local LoginRoot_Url = VersionManager:GetVersionInfo("serverUrl") +local LoginRoot_Url = ServerConfigManager.GetVersionInfo("serverUrl") function this.Initialize() this.IsLogin = false this.GameName='DouDou' diff --git a/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua b/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua index 712bd9ac29..ed67021a49 100644 --- a/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Login/LoginPanel.lua @@ -4,7 +4,7 @@ LoginPanel = Inherit(BasePanel) local this = LoginPanel this.LoginWay = { Account = 0, WeChat = 1 } - +SERVER_VERSION = tonumber(ServerConfigManager.GetSettingValue(ServerConfigManager.SettingConfig.ServerVersion) or 0) local ServerVersion = SERVER_VERSION local IsShowNotice = SERVER_VERSION == 0 -- 正式服显示公告 @@ -15,11 +15,11 @@ local openIdkey = "openIdkey" local openIdPw = "openIdPw" local defaultOpenIdkey = Language[11135] local defaultOpenIdPw = "" -local LoginRoot_Url = VersionManager:GetVersionInfo("serverUrl") -local LoginRoot_SubChannel = VersionManager:GetVersionInfo("subChannel") -local LoginRoot_Channel = VersionManager:GetVersionInfo("channel") -local LoginRoot_Version = VersionManager:GetVersionInfo("version") -local LoginRoot_PackageVersion = VersionManager:GetVersionInfo("packageVersion") +local LoginRoot_Url = ServerConfigManager.GetVersionInfo("serverUrl") +local LoginRoot_SubChannel = ServerConfigManager.GetVersionInfo("subChannel") +local LoginRoot_Channel = ServerConfigManager.GetVersionInfo("channel") +local LoginRoot_Version = ServerConfigManager.GetVersionInfo("version") +local LoginRoot_PackageVersion = ServerConfigManager.GetVersionInfo("packageVersion") local orginLayer local timeStamp = Time.realtimeSinceStartup diff --git a/Assets/ManagedResources/~Lua/Modules/Login/NoticePopup.lua b/Assets/ManagedResources/~Lua/Modules/Login/NoticePopup.lua index c62f31150b..d39e128712 100644 --- a/Assets/ManagedResources/~Lua/Modules/Login/NoticePopup.lua +++ b/Assets/ManagedResources/~Lua/Modules/Login/NoticePopup.lua @@ -1,7 +1,7 @@ require("Base/BasePanel") NoticePopup = Inherit(BasePanel) local this = NoticePopup -local LoginRoot_Url = VersionManager:GetVersionInfo("serverUrl") +local LoginRoot_Url = ServerConfigManager.GetVersionInfo("serverUrl") --初始化组件(用于子类重写) function NoticePopup:InitComponent() diff --git a/Assets/ManagedResources/~Lua/Modules/Message/MsgPanel.lua b/Assets/ManagedResources/~Lua/Modules/Message/MsgPanel.lua index f7bbb200df..d373df13a0 100644 --- a/Assets/ManagedResources/~Lua/Modules/Message/MsgPanel.lua +++ b/Assets/ManagedResources/~Lua/Modules/Message/MsgPanel.lua @@ -64,7 +64,7 @@ function MsgPanel.ShowOne(msg, action, text, title) MsgPanel.btn_Left.gameObject:SetActive(true) MsgPanel.btn_Right.gameObject:SetActive(false) MsgPanel._toggle.gameObject:SetActive(false) - LayoutRebuilder.ForceRebuildLayoutImmediate(MsgPanel._toggle.transform) + ForceRebuildLayout(MsgPanel._toggle.transform) end --展示两个按钮 @@ -88,7 +88,7 @@ function MsgPanel.ShowTwo(msg, leftAction, rightAction, leftText, rightText, tit else MsgPanel._toggle.gameObject:SetActive(false) end - LayoutRebuilder.ForceRebuildLayoutImmediate(MsgPanel._toggle.transform) + ForceRebuildLayout(MsgPanel._toggle.transform) end function MsgPanel.Hide() diff --git a/Assets/ManagedResources/~Lua/Modules/Popup/RewardTalismanSingleShowPopup.lua b/Assets/ManagedResources/~Lua/Modules/Popup/RewardTalismanSingleShowPopup.lua index 5b8e72efa8..0a93c6bd00 100644 --- a/Assets/ManagedResources/~Lua/Modules/Popup/RewardTalismanSingleShowPopup.lua +++ b/Assets/ManagedResources/~Lua/Modules/Popup/RewardTalismanSingleShowPopup.lua @@ -110,8 +110,8 @@ function RewardTalismanSingleShowPopup:OnShow() self.btnSure:SetActive(false) end self:OnShowPanelData() - LayoutRebuilder.ForceRebuildLayoutImmediate(self.curMainProscroll.transform) - LayoutRebuilder.ForceRebuildLayoutImmediate(self.curotherProscroll.transform) + ForceRebuildLayout(self.curMainProscroll.transform) + ForceRebuildLayout(self.curotherProscroll.transform) end function RewardTalismanSingleShowPopup:OnShowPanelData() local curEquipTreasureFigData = {} diff --git a/Assets/ManagedResources/~Lua/Modules/Setting/SettingInfo.lua b/Assets/ManagedResources/~Lua/Modules/Setting/SettingInfo.lua index bde32a6832..13692a69ab 100644 --- a/Assets/ManagedResources/~Lua/Modules/Setting/SettingInfo.lua +++ b/Assets/ManagedResources/~Lua/Modules/Setting/SettingInfo.lua @@ -40,44 +40,54 @@ function SettingInfo:InitComponent(gameObject, rootPanel) -- this.languageBtn = Util.GetGameObject(gameObject, "other/box/languageBtn") -- this.languageText= Util.GetGameObject(this.languageBtn,"Text"):GetComponent("Text") -- this.languageText.text=GetCurLanguage()==0 and "中文" or "英文" + + if IsLanguagePack then + this.dropDown = Util.GetGameObject(gameObject,"other/box1/Dropdown"):GetComponent("Dropdown") + this.dropDownText = Util.GetGameObject(gameObject,"other/box1/Dropdown/Label"):GetComponent("Text") + this.dropDownTip = Util.GetGameObject(gameObject,"other/box1/tip") + else + this.dropDown = Util.GetGameObject(gameObject,"other/box1/Dropdown") + this.dropDown:SetActive(false) - this.dropDown = Util.GetGameObject(gameObject,"other/box1/Dropdown"):GetComponent("Dropdown") - this.dropDownText = Util.GetGameObject(gameObject,"other/box1/Dropdown/Label"):GetComponent("Text") - this.dropDownTip = Util.GetGameObject(gameObject,"other/box1/tip") + end end function SettingInfo:SetTipShow() - local flag = PlayerPrefs.GetInt("language_flag") - LogGreen("PlayerPrefs:"..flag) - if flag == 0 then - this.dropDownText.text = Language[11854] - elseif flag == 2 then - this.dropDownText.text = "Tiếng Việt" - elseif flag == 1 then - this.dropDownText.text = "English" - end - this.dropDown.value = flag - if GetCurLanguage() ~= flag then - this.dropDownTip.gameObject:SetActive(true) - else - this.dropDownTip.gameObject:SetActive(false) + if IsLanguagePack then + local flag = PlayerPrefs.GetInt("language_flag") + LogGreen("PlayerPrefs:"..flag) + if flag == 0 then + this.dropDownText.text = Language[11854] + elseif flag == 2 then + this.dropDownText.text = "Tiếng Việt" + elseif flag == 1 then + this.dropDownText.text = "English" + end + this.dropDown.value = flag + if GetCurLanguage() ~= flag then + this.dropDownTip.gameObject:SetActive(true) + else + this.dropDownTip.gameObject:SetActive(false) + end end end --绑定事件(用于子类重写) function SettingInfo:BindEvent() - this.dropDown.onValueChanged:AddListener( - function(value) - PlayerPrefs.SetInt("language_flag",value) - this:SetTipShow() - if value == GetCurLanguage() then - return - end - MsgPanel.ShowTwo(Language[11856],function() end,function() - Game.Logout() - end,Language[10731],Language[10732],"",false,"") - end - ) + if IsLanguagePack then + this.dropDown.onValueChanged:AddListener( + function(value) + PlayerPrefs.SetInt("language_flag",value) + this:SetTipShow() + if value == GetCurLanguage() then + return + end + MsgPanel.ShowTwo(Language[11856],function() end,function() + Game.Logout() + end,Language[10731],Language[10732],"",false,"") + end + ) + end --cdKey兑换 Util.AddClick(this.cdKey, function() UIManager.OpenPanel(UIName.CDKeyExchangePanel) diff --git a/Assets/ManagedResources/~Lua/misc/functions.lua b/Assets/ManagedResources/~Lua/misc/functions.lua index 0b1a6ad135..a003de5e3f 100644 --- a/Assets/ManagedResources/~Lua/misc/functions.lua +++ b/Assets/ManagedResources/~Lua/misc/functions.lua @@ -56,20 +56,21 @@ function reimport(name) return require(name) end + function GetPreferredHeight(_transform) - if LayoutRebuilder then - LayoutRebuilder.ForceRebuildLayoutImmediate(_transform) - end + ForceRebuildLayout(_transform) return LayoutUtility.GetPreferredHeight(_transform) end function GetPreferredWidth(_transform) - if LayoutRebuilder then - LayoutRebuilder.ForceRebuildLayoutImmediate(_transform) - end + ForceRebuildLayout(_transform) return LayoutUtility.GetPreferredWidth(_transform) end + function ForceRebuildLayout(_transform) - if LayoutRebuilder then + if ServerConfigManager.IsSettingActive(ServerConfigManager.SettingConfig.LayoutBuilderWrap) then + if not LayoutRebuilder then + LayoutRebuilder = UnityEngine.UI.LayoutRebuilder + end LayoutRebuilder.ForceRebuildLayoutImmediate(_transform) end end \ No newline at end of file diff --git a/Assets/Scripts/Core/ResUpdate/Manager/ResourcesUpdateManager.cs b/Assets/Scripts/Core/ResUpdate/Manager/ResourcesUpdateManager.cs index a766fd97f5..ac15104c01 100644 --- a/Assets/Scripts/Core/ResUpdate/Manager/ResourcesUpdateManager.cs +++ b/Assets/Scripts/Core/ResUpdate/Manager/ResourcesUpdateManager.cs @@ -314,6 +314,25 @@ namespace ResUpdate } downLoadURL = VersionManager.Instance.GetVersionInfo("resUrl") + AppConst.PlatformPath + "/"; + + // 获取config + string conUrl = downLoadURL + AppConst.GameConfigFile; + Debug.Log("Download_Resouces_Url:" + conUrl); + UnityWebRequest request0 = UnityWebRequest.Get(conUrl); + request0.certificateHandler = new AcceptAllCertificatesSignedWithASpecificPublicKey(); + yield return request0.SendWebRequest(); + if (request0.isNetworkError) + { + SetResourcesUpdateState(true, ResourcesUpdateState.GetGameConfigsFailed); + yield break; + } + else + { + Debug.Log("www.text.config:" + request0.downloadHandler.text); + ConfigManager.Instance.SetNetInfo(request0.downloadHandler.text); + } + + // 获取version string resUrl = downLoadURL + AppConst.GameVersionFile; Debug.Log("Download_Resouces_Url:" + resUrl); @@ -327,7 +346,7 @@ namespace ResUpdate } else { - Debug.Log("www.text:" + request.downloadHandler.text); + Debug.Log("www.text.version:" + request.downloadHandler.text); Hashtable table = MiniJSON.jsonDecode(request.downloadHandler.text) as Hashtable; if (table == null) diff --git a/Assets/Scripts/Editor/Custom/CustomSettings.cs b/Assets/Scripts/Editor/Custom/CustomSettings.cs index 8054cf165f..cbc98b9911 100644 --- a/Assets/Scripts/Editor/Custom/CustomSettings.cs +++ b/Assets/Scripts/Editor/Custom/CustomSettings.cs @@ -249,6 +249,7 @@ public static class CustomSettings _GT(typeof(ResourcesUpdateState)), _GT(typeof(ImageDownloadManager)), _GT(typeof(VersionManager)), + _GT(typeof(ConfigManager)), _GT(typeof(UpdateManager)), _GT(typeof(SetInternetPic)), _GT(typeof(SkeletonGraphic)), diff --git a/Assets/Scripts/Editor/GameEditor/FrameTool/ConfigWindow.cs b/Assets/Scripts/Editor/GameEditor/FrameTool/ConfigWindow.cs new file mode 100644 index 0000000000..f744f65112 --- /dev/null +++ b/Assets/Scripts/Editor/GameEditor/FrameTool/ConfigWindow.cs @@ -0,0 +1,129 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; +using System.IO; +using System.Linq; +using GameEditor.Core; +using GameEditor.GameEditor.PlayerBuilder; +using GameLogic; +using System.Diagnostics; +using ResUpdate; +using System.Threading; + +namespace GameEditor.FrameTool { + public class ConfigWindow : EditorWindow + { + + string m_ExcelPath; + private void OnEnable() + { + m_ExcelPath = EditorPrefs.GetString("m_ExcelPath"); + } + + // Add menu named "My Window" to the Window menu + [MenuItem("Build/Config")] + static void Init() + { + + // Get existing open window or if none, make a new one: + ConfigWindow window = (ConfigWindow)EditorWindow.GetWindow(typeof(ConfigWindow)); + window.Show(); + window.InitWindow(); + + } + + void InitWindow() + { + InitSize(); + InitGames(); + } + + /// + /// 初始化大小 + /// + void InitSize() + { + minSize = new Vector2(300, 400); + maxSize = new Vector2(300, 650); + } + + + /// + /// 初始化游戏 + /// + void InitGames() + { + } + + void OnGUI() + { + + + EditorGUILayout.BeginVertical(); + EditorGUILayout.Space(); + EditorGUILayout.LabelField("Config文件路径:"); + + EditorGUILayout.BeginHorizontal(); + m_ExcelPath = EditorGUILayout.TextField("", m_ExcelPath); + if (GUILayout.Button("加载", GUILayout.Width(60f))) + { + } + if (GUILayout.Button("打开目录", GUILayout.Width(60f))) + { + OpenDirectory(m_ExcelPath); + } + EditorGUILayout.EndHorizontal(); + + + //if (excelArr != null && excelArr.Length > 0) + //{ + // excelIndex = EditorGUILayout.Popup("选择excel文件:", excelIndex, excelArr); + //} + + } + + static string shellPath; + public static void OpenDirectory(string path) + { + if (string.IsNullOrEmpty(path)) return; + + if (!Directory.Exists(path)) + { + UnityEngine.Debug.LogError("No Directory: " + path); + return; + } + + //Application.dataPath 只能在主线程中获取 + int lastIndex = Application.dataPath.LastIndexOf("/"); + shellPath = Application.dataPath.Substring(0, lastIndex) + "/Shell/"; + + // 新开线程防止锁死 + Thread newThread = new Thread(new ParameterizedThreadStart(CmdOpenDirectory)); + newThread.Start(path); + } + private static void CmdOpenDirectory(object obj) + { + Process p = new Process(); +#if UNITY_EDITOR_WIN + p.StartInfo.FileName = "cmd.exe"; + p.StartInfo.Arguments = "/c start " + obj.ToString(); +#elif UNITY_EDITOR_OSX + p.StartInfo.FileName = "bash"; + string shPath = shellPath + "openDir.sh"; + p.StartInfo.Arguments = shPath + " " + obj.ToString(); +#endif + //UnityEngine.Debug.Log(p.StartInfo.Arguments); + p.StartInfo.UseShellExecute = false; + p.StartInfo.RedirectStandardInput = true; + p.StartInfo.RedirectStandardOutput = true; + p.StartInfo.RedirectStandardError = true; + p.StartInfo.CreateNoWindow = true; + p.Start(); + + p.WaitForExit(); + p.Close(); + } + } + +} diff --git a/Assets/Scripts/Editor/GameEditor/FrameTool/ConfigWindow.cs.meta b/Assets/Scripts/Editor/GameEditor/FrameTool/ConfigWindow.cs.meta new file mode 100644 index 0000000000..f3b8be4529 --- /dev/null +++ b/Assets/Scripts/Editor/GameEditor/FrameTool/ConfigWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 430a2ef9ef9800c4d8bff3f5edc235e1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Source/Generate/AppWrap.cs b/Assets/Source/Generate/AppWrap.cs index 9da6bbf3fc..9943d28622 100644 --- a/Assets/Source/Generate/AppWrap.cs +++ b/Assets/Source/Generate/AppWrap.cs @@ -29,6 +29,7 @@ public class AppWrap L.RegVar("SDKMgr", get_SDKMgr, null); L.RegVar("RRenderMgr", get_RRenderMgr, null); L.RegVar("VersionMgr", get_VersionMgr, null); + L.RegVar("ConfigMgr", get_ConfigMgr, null); L.EndClass(); } @@ -341,5 +342,19 @@ public class AppWrap return LuaDLL.toluaL_exception(L, e); } } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int get_ConfigMgr(IntPtr L) + { + try + { + ToLua.PushObject(L, App.ConfigMgr); + return 1; + } + catch (Exception e) + { + return LuaDLL.toluaL_exception(L, e); + } + } } diff --git a/Assets/Source/Generate/GameCore_Singleton_GameLogic_ConfigManagerWrap.cs b/Assets/Source/Generate/GameCore_Singleton_GameLogic_ConfigManagerWrap.cs new file mode 100644 index 0000000000..fcc3459e5c --- /dev/null +++ b/Assets/Source/Generate/GameCore_Singleton_GameLogic_ConfigManagerWrap.cs @@ -0,0 +1,29 @@ +//this source code was auto-generated by tolua#, do not modify it +using System; +using LuaInterface; + +public class GameCore_Singleton_GameLogic_ConfigManagerWrap +{ + public static void Register(LuaState L) + { + L.BeginClass(typeof(GameCore.Singleton), typeof(System.Object), "Singleton_GameLogic_ConfigManager"); + L.RegFunction("__tostring", ToLua.op_ToString); + L.RegVar("Instance", get_Instance, null); + L.EndClass(); + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int get_Instance(IntPtr L) + { + try + { + ToLua.PushObject(L, GameCore.Singleton.Instance); + return 1; + } + catch (Exception e) + { + return LuaDLL.toluaL_exception(L, e); + } + } +} + diff --git a/Assets/Source/Generate/GameCore_Singleton_GameLogic_ConfigManagerWrap.cs.meta b/Assets/Source/Generate/GameCore_Singleton_GameLogic_ConfigManagerWrap.cs.meta new file mode 100644 index 0000000000..39e8c8d924 --- /dev/null +++ b/Assets/Source/Generate/GameCore_Singleton_GameLogic_ConfigManagerWrap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 67952d9124f8ab5498b0ac978bcbdea7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Source/Generate/GameLogic_AppConstWrap.cs b/Assets/Source/Generate/GameLogic_AppConstWrap.cs index 803338e272..2c0f9ca8c4 100644 --- a/Assets/Source/Generate/GameLogic_AppConstWrap.cs +++ b/Assets/Source/Generate/GameLogic_AppConstWrap.cs @@ -53,6 +53,7 @@ public class GameLogic_AppConstWrap L.RegVar("LaQi_JoinRoom_Url", get_LaQi_JoinRoom_Url, set_LaQi_JoinRoom_Url); L.RegVar("LoadingMD5Flie", get_LoadingMD5Flie, null); L.RegVar("GameVersionFile", get_GameVersionFile, null); + L.RegVar("GameConfigFile", get_GameConfigFile, null); L.RegVar("UserId", get_UserId, set_UserId); L.RegVar("Token", get_Token, set_Token); L.RegVar("SdkId", get_SdkId, set_SdkId); @@ -730,6 +731,20 @@ public class GameLogic_AppConstWrap } } + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int get_GameConfigFile(IntPtr L) + { + try + { + LuaDLL.lua_pushstring(L, GameLogic.AppConst.GameConfigFile); + return 1; + } + catch (Exception e) + { + return LuaDLL.toluaL_exception(L, e); + } + } + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] static int get_UserId(IntPtr L) { diff --git a/Assets/Source/Generate/GameLogic_ConfigManagerWrap.cs b/Assets/Source/Generate/GameLogic_ConfigManagerWrap.cs new file mode 100644 index 0000000000..31789b96e8 --- /dev/null +++ b/Assets/Source/Generate/GameLogic_ConfigManagerWrap.cs @@ -0,0 +1,112 @@ +//this source code was auto-generated by tolua#, do not modify it +using System; +using LuaInterface; + +public class GameLogic_ConfigManagerWrap +{ + public static void Register(LuaState L) + { + L.BeginClass(typeof(GameLogic.ConfigManager), typeof(GameCore.Singleton)); + L.RegFunction("Init", Init); + L.RegFunction("SetNetInfo", SetNetInfo); + L.RegFunction("GetConfigInfo", GetConfigInfo); + L.RegFunction("GetConfigNetInfo", GetConfigNetInfo); + L.RegFunction("New", _CreateGameLogic_ConfigManager); + L.RegFunction("__tostring", ToLua.op_ToString); + L.EndClass(); + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int _CreateGameLogic_ConfigManager(IntPtr L) + { + try + { + int count = LuaDLL.lua_gettop(L); + + if (count == 0) + { + GameLogic.ConfigManager obj = new GameLogic.ConfigManager(); + ToLua.PushObject(L, obj); + return 1; + } + else + { + return LuaDLL.luaL_throw(L, "invalid arguments to ctor method: GameLogic.ConfigManager.New"); + } + } + catch (Exception e) + { + return LuaDLL.toluaL_exception(L, e); + } + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int Init(IntPtr L) + { + try + { + ToLua.CheckArgsCount(L, 1); + GameLogic.ConfigManager obj = (GameLogic.ConfigManager)ToLua.CheckObject(L, 1); + obj.Init(); + return 0; + } + catch (Exception e) + { + return LuaDLL.toluaL_exception(L, e); + } + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int SetNetInfo(IntPtr L) + { + try + { + ToLua.CheckArgsCount(L, 2); + GameLogic.ConfigManager obj = (GameLogic.ConfigManager)ToLua.CheckObject(L, 1); + string arg0 = ToLua.CheckString(L, 2); + obj.SetNetInfo(arg0); + return 0; + } + catch (Exception e) + { + return LuaDLL.toluaL_exception(L, e); + } + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int GetConfigInfo(IntPtr L) + { + try + { + ToLua.CheckArgsCount(L, 2); + GameLogic.ConfigManager obj = (GameLogic.ConfigManager)ToLua.CheckObject(L, 1); + string arg0 = ToLua.CheckString(L, 2); + string o = obj.GetConfigInfo(arg0); + LuaDLL.lua_pushstring(L, o); + return 1; + } + catch (Exception e) + { + return LuaDLL.toluaL_exception(L, e); + } + } + + [MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))] + static int GetConfigNetInfo(IntPtr L) + { + try + { + ToLua.CheckArgsCount(L, 2); + GameLogic.ConfigManager obj = (GameLogic.ConfigManager)ToLua.CheckObject(L, 1); + string arg0 = ToLua.CheckString(L, 2); + string o = obj.GetConfigNetInfo(arg0); + LuaDLL.lua_pushstring(L, o); + return 1; + } + catch (Exception e) + { + return LuaDLL.toluaL_exception(L, e); + } + } +} + diff --git a/Assets/Source/Generate/GameLogic_ConfigManagerWrap.cs.meta b/Assets/Source/Generate/GameLogic_ConfigManagerWrap.cs.meta new file mode 100644 index 0000000000..39821fc84e --- /dev/null +++ b/Assets/Source/Generate/GameLogic_ConfigManagerWrap.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 467effe90bc1d524a8830982f9034e0f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Source/Generate/LuaBinder.cs b/Assets/Source/Generate/LuaBinder.cs index 326d772df9..f24f1f41ef 100644 --- a/Assets/Source/Generate/LuaBinder.cs +++ b/Assets/Source/Generate/LuaBinder.cs @@ -51,6 +51,7 @@ public static class LuaBinder GameCore_UnitySingleton_SDK_SDKManagerWrap.Register(L); GameCore_UnitySingleton_GameLogic_ImageDownloadManagerWrap.Register(L); GameCore_Singleton_GameLogic_VersionManagerWrap.Register(L); + GameCore_Singleton_GameLogic_ConfigManagerWrap.Register(L); GameCore_Singleton_GameLogic_UpdateManagerWrap.Register(L); GameCore_UnitySingleton_GameLogic_PhoneManagerWrap.Register(L); GameCore_UnitySingleton_GameLogic_ObjectPoolManagerWrap.Register(L); @@ -180,6 +181,7 @@ public static class LuaBinder UnityEngine_UI_VerticalLayoutGroupWrap.Register(L); UnityEngine_UI_LayoutElementWrap.Register(L); UnityEngine_UI_ContentSizeFitterWrap.Register(L); + UnityEngine_UI_SpriteStateWrap.Register(L); UnityEngine_UI_LayoutUtilityWrap.Register(L); UnityEngine_UI_LayoutRebuilderWrap.Register(L); UnityEngine_UI_GraphicWrap.Register(L); @@ -264,6 +266,7 @@ public static class LuaBinder GameLogic_UIDepthAdapterWrap.Register(L); GameLogic_ImageDownloadManagerWrap.Register(L); GameLogic_VersionManagerWrap.Register(L); + GameLogic_ConfigManagerWrap.Register(L); GameLogic_UpdateManagerWrap.Register(L); GameLogic_PhoneManagerWrap.Register(L); GameLogic_EventTriggerListenerWrap.Register(L);