local SettingInfo = quick_class("SettingInfo") local this = SettingInfo local dropDownList = {} local Picture_quality=1 function SettingInfo:ctor(mainPanel, gameObject) self.mainPanel = mainPanel self.gameObject = gameObject self:InitComponent(gameObject) -- self:BindEvent() end --初始化组件(用于子类重写) function SettingInfo:InitComponent(gameObject) --头像 this.head = Util.GetGameObject(gameObject, "playerInfo/head") this.headpos = Util.GetGameObject(gameObject, "playerInfo/head/pos") this.headRedpot = Util.GetGameObject(gameObject, "playerInfo/head/redpot") this.name = Util.GetGameObject(gameObject, "playerInfo/name/Text"):GetComponent("Text") this.btnChangeName = Util.GetGameObject(gameObject, "playerInfo/name/Image/btn") this.uidText = Util.GetGameObject(gameObject, "playerInfo/uid/Text"):GetComponent("Text")--uid this.guildText = Util.GetGameObject(gameObject, "playerInfo/guild/Text"):GetComponent("Text")--公会 this.gridText = Util.GetGameObject(gameObject, "playerInfo/grid/Text"):GetComponent("Text")--等级 -- this.idText = Util.GetGameObject(gameObject, "playerInfo/id/Text"):GetComponent("Text") -- this.serverText = Util.GetGameObject(gameObject, "playerInfo/server/Text"):GetComponent("Text") --声音 this.BGMSlider = Util.GetGameObject(gameObject, "setting/BGMSlider"):GetComponent("Slider") -- this.BGMSliderValue = Util.GetGameObject(gameObject, "setting/BGMSlider/count"):GetComponent("Text") this.SoundSlider = Util.GetGameObject(gameObject, "setting/SoundSlider"):GetComponent("Slider") -- this.SoundSliderValue = Util.GetGameObject(gameObject, "setting/SoundSlider/count"):GetComponent("Text") -- this.btnOneKeyCopy = Util.GetGameObject(gameObject, "setting/oneKeyCopy") this.btnChangeLogin = Util.GetGameObject(gameObject, "btn/changelogin")--切换账号 this.btnCdKey = Util.GetGameObject(gameObject, "btn/cdkey")--兑换码 this.btnCustomerService = Util.GetGameObject(gameObject, "btn/customerService")--客服中心 this.btnRelation = Util.GetGameObject(gameObject, "btn/relation")--账号关联 this.btnAccountCancellation = Util.GetGameObject(gameObject, "btn/accountCancellation")--账号注销 this.submit = Util.GetGameObject(gameObject, "btn/submit")--社交软件 this.bind = Util.GetGameObject(gameObject, "btn/bind")--绑定 this.community = Util.GetGameObject(gameObject, "btn/community")--社区 --切换语言 this.multiLanguageDropDown = Util.GetGameObject(gameObject,"setting/multiLanguage"):GetComponent("Dropdown") this.multiLanguageDropDownText = Util.GetGameObject(gameObject,"setting/multiLanguage/Label"):GetComponent("Text") if not Switch_MultiLanguage then this.multiLanguageDropDown.gameObject:SetActive(false) end --显隐VIP this.showVip = Util.GetGameObject(gameObject, "playerInfo/showVip/yes") this.noShowVip = Util.GetGameObject(gameObject, "playerInfo/showVip/no") --显示模式 this.Energysaving = Util.GetGameObject(gameObject, "playerInfo/Picturequality/Energysaving") this.balance = Util.GetGameObject(gameObject, "playerInfo/Picturequality/balance") this.performance = Util.GetGameObject(gameObject, "playerInfo/Picturequality/performance") this.PicText = Util.GetGameObject(gameObject, "playerInfo/Picturequality/Text") this.PichelpBtn = Util.GetGameObject(gameObject, "playerInfo/Picturequality/helpBtn") this.PichelpPosition = this.PichelpBtn:GetComponent("RectTransform").localPosition this:InitConfigText() end --绑定事件(用于子类重写) function SettingInfo:BindEvent() if Switch_MultiLanguage then this.multiLanguageDropDown.onValueChanged:AddListener( function(value) local lanId for k, v in pairs(dropDownList) do if v == value then lanId = k end end PlayerPrefs.SetInt("multi_language_temp", lanId) if lanId == GetCurLanguage() then return end local multiLanguageData = G_MultiLanguage[lanId] MsgPanel.ShowTwo(string.format(GetLanguageStrById(50332), multiLanguageData.Lang_Show),function() this.SetMultiLanguageUI(GetCurLanguage()) end,function() local selectLan = PlayerPrefs.GetInt("multi_language_temp", 0) PlayerPrefs.SetInt("multi_language", selectLan) if LanguageID2LanID(selectLan) ~= 0 then if LanguageID2LanID(selectLan) == 1 then PlayerPrefs.SetInt("multi_language_ResOpen_en", 1) elseif LanguageID2LanID(selectLan) == 2 then end end Game.Logout() end,GetLanguageStrById(10719),GetLanguageStrById(10720),"",false,"") end) end --绑定 Util.AddClick(this.bind, function() if AppConst.isSDKLogin then SDKMgr:Bind() end end) --社区 Util.AddClick(this.community, function() if AppConst.isSDKLogin then SDKMgr:Community() end end) --客服中心 Util.AddClick(this.btnCustomerService,function() if AppConst.isSDKLogin then SDKMgr:CustomerService() end end) --账户关联 Util.AddClick(this.btnRelation,function() if AppConst.isSDKLogin then SDKMgr:Relation("") end end) --账号注销 Util.AddClick(this.btnAccountCancellation,function() if AppConst.isSDKLogin then SDKMgr:Cancellation() end end) Util.AddOnceClick(this.submit, function() if AppConst.isSDKLogin then SDKMgr:LoginPanel_Btn1() end UnityEngine.Application.OpenURL("https://discord.gg/6P2r7t5SPy") end) --兑换码 Util.AddClick(this.btnCdKey, function() UIManager.OpenPanel(UIName.CDKeyExchangePanel) end) Util.AddClick(this.head, function() UIManager.OpenPanel(UIName.HeadChangePopup) end) Util.AddClick(this.btnChangeName, function() UIManager.OpenPanel(UIName.CreateNamePopup) end) Util.AddSlider(this.BGMSlider.gameObject, function(go, value) SettingManager.SetSettingData(SETTING_TYPE.BGM_RATIO, value) -- this.BGMSliderValue.text = math.floor(value * 100) end) Util.AddSlider(this.SoundSlider.gameObject, function(go, value) SettingManager.SetSettingData(SETTING_TYPE.SOUND_RATIO, value) -- this.SoundSliderValue.text = math.floor(value * 100) end) --切换账号 Util.AddClick(this.btnChangeLogin, function() --MsgPanel.ShowTwo(GetLanguageStrById(11895), nil, function() if AppConst.isSDKLogin then SDKMgr:Logout() else Framework.Dispose() App.Instance:ReStart() end --end) end) -- Util.AddClick(this.btnOneKeyCopy, function() -- if not UnityEngine.Application.isMobilePlatform then -- PopupTipPanel.ShowTipByLanguageId(11896) -- return -- end -- local str = GetLanguageStrById(11897) .. PlayerManager.serverInfo.name .. "\n" .. GetLanguageStrById(11898) .. PlayerManager.nickName .. -- "\n" .. GetLanguageStrById(11899) .. AppConst.OpenId .. "\n" .. GetLanguageStrById(11900) .. PlayerManager.uid -- AndroidDeviceInfo.Instance:SetCopyValue(str) -- PopupTipPanel.ShowTipByLanguageId(11901) -- end) Util.AddClick(this.showVip, function () if PlayerManager.isShowVip then return end NetManager.SetVipShowRequest(true, function () this:IsShowVip(true) PlayerManager.isShowVip = true end) end) Util.AddClick(this.noShowVip, function () if not PlayerManager.isShowVip then return end NetManager.SetVipShowRequest(false, function () this:IsShowVip(false) PlayerManager.isShowVip = false end) end) Util.AddClick(this.Energysaving, function () if Picture_quality==1 then return end this:SetPictureQuality(1) end) Util.AddClick(this.balance, function () if Picture_quality==2 then return end this:SetPictureQuality(2) end) Util.AddClick(this.performance, function () if Picture_quality==3 then return end this:SetPictureQuality(3) end) Util.AddClick(this.PichelpBtn, function() UIManager.OpenPanel(UIName.HelpPopup,137,this.PichelpPosition.x+508,this.PichelpPosition.y+267) end) BindRedPointObject(RedPointType.Setting_Head, this.headRedpot) end --添加事件监听(用于子类重写) function SettingInfo:AddListener() Game.GlobalEvent:AddEvent(GameEvent.Player.OnHeadFrameChange, this.RefreshPlayerInfoShow) Game.GlobalEvent:AddEvent(GameEvent.Player.OnHeadChange, this.RefreshPlayerInfoShow) Game.GlobalEvent:AddEvent(GameEvent.Player.OnChangeName, this.RefreshPlayerInfoShow) end --移除事件监听(用于子类重写) function SettingInfo:RemoveListener() Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnHeadFrameChange, this.RefreshPlayerInfoShow) Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnHeadChange, this.RefreshPlayerInfoShow) Game.GlobalEvent:RemoveEvent(GameEvent.Player.OnChangeName, this.RefreshPlayerInfoShow) end --界面打开时调用(用于子类重写) function SettingInfo:OnOpen() end function SettingInfo:InitConfigText() Util.GetGameObject(this.Energysaving, "Text"):GetComponent("Text").text= GetLanguageStrById(50448) Util.GetGameObject(this.balance, "Text"):GetComponent("Text").text= GetLanguageStrById(50449) Util.GetGameObject(this.performance, "Text"):GetComponent("Text").text= GetLanguageStrById(50450) this.PicText:GetComponent("Text").text=GetLanguageStrById(50451) end --界面打开或者重新打开后,界面刷新时调用(用于子类重写) function SettingInfo:OnShow() this.RefreshPlayerInfoShow() this.BGMSlider.value = SettingManager.GetSettingData(SETTING_TYPE.BGM_RATIO) this.SoundSlider.value = SettingManager.GetSettingData(SETTING_TYPE.SOUND_RATIO) Picture_quality = PlayerPrefs.GetInt("Picture_quality"..PlayerManager.uid) this.SetMultiLanguageUI() this:IsShowVip(PlayerManager.isShowVip) this:SetPictureQuality(Picture_quality) local channelConfig = GetChannelConfig() if AppConst.isOpenGM then this.multiLanguageDropDown.gameObject:SetActive(true) else this.multiLanguageDropDown.gameObject:SetActive(channelConfig.Button_PlayerSet_Language) end this.btnCdKey:SetActive(channelConfig.Button_PlayerSet_Exchange) this.btnRelation:SetActive(channelConfig.Button_PlayerSet_Relation) this.btnCustomerService:SetActive(channelConfig.Button_PlayerSet_Service) this.btnAccountCancellation:SetActive(channelConfig.Button_PlayerSet_Cancellation) this.btnChangeLogin:SetActive(channelConfig.Button_switch) this.bind:SetActive(channelConfig.Button_PlayerSet_Bind) end function SettingInfo:OnSortingOrderChange() end --界面关闭时调用(用于子类重写) function SettingInfo:OnClose() end --界面销毁时调用(用于子类重写) function SettingInfo:OnDestroy() --SubUIManager.Close(this.UpView) if this.playerHead then this.playerHead:Recycle() this.playerHead = nil end ClearRedPointObject(RedPointType.Setting_Head) end --刷新玩家信息 function this.RefreshPlayerInfoShow() if not this.playerHead then -- this.playerHead = CommonPool.CreateNode(POOL_ITEM_TYPE.PLAYER_HEAD, this.headpos) this.playerHead = SubUIManager.Open(SubUIConfig.PlayerHeadView, this.headpos.transform) end this.playerHead:Reset() this.playerHead:SetHead(PlayerManager.head) this.playerHead:SetFrame(PlayerManager.frame) this.playerHead:SetScale(1) -- this.playerHead:SetLevel(PlayerManager.level) this.name.text = PlayerManager.nickName this.uidText.text = PlayerManager.uid local guildData = MyGuildManager.GetMyGuildInfo() this.guildText.text = guildData == nil and GetLanguageStrById(10094) or guildData.name this.gridText.text = PlayerManager.level -- this.exp.value = PlayerManager.exp / PlayerManager.userLevelData[PlayerManager.level].Exp -- this.expText.text = PlayerManager.exp .. "/" .. PlayerManager.userLevelData[PlayerManager.level].Exp -- this.idText.text = AppConst.OpenId or LoginManager.openId -- this.serverText.text = PlayerManager.serverInfo.name end --是否显示VIP function SettingInfo:IsShowVip(isShow) Util.GetGameObject(this.showVip, "Image"):SetActive(isShow) Util.GetGameObject(this.noShowVip, "Image"):SetActive(not isShow) if isShow then Util.GetGameObject(this.showVip, "Text"):GetComponent("Text").color = UIColor.WHITE Util.GetGameObject(this.noShowVip, "Text"):GetComponent("Text").color = UIColor.GRAY else Util.GetGameObject(this.showVip, "Text"):GetComponent("Text").color = UIColor.GRAY Util.GetGameObject(this.noShowVip, "Text"):GetComponent("Text").color = UIColor.WHITE end end --设置模式 function SettingInfo:SetPictureQuality(level) if level==nil or level=="" or level==0 then level=2 PlayerPrefs.SetInt("Picture_quality"..PlayerManager.uid,level) else PlayerPrefs.SetInt("Picture_quality"..PlayerManager.uid,level) end Picture_quality=level Util.GetGameObject(this.Energysaving, "Image"):SetActive(level==1) Util.GetGameObject(this.balance, "Image"):SetActive(level==2) Util.GetGameObject(this.performance, "Image"):SetActive(level==3) if level==1 then Util.GetGameObject(this.Energysaving, "Text"):GetComponent("Text").color = UIColor.WHITE Util.GetGameObject(this.balance, "Text"):GetComponent("Text").color = UIColor.GRAY Util.GetGameObject(this.performance, "Text"):GetComponent("Text").color = UIColor.GRAY AppConst.GameFrameRate = 15 elseif level==2 then Util.GetGameObject(this.Energysaving, "Text"):GetComponent("Text").color = UIColor.GRAY Util.GetGameObject(this.balance, "Text"):GetComponent("Text").color = UIColor.WHITE Util.GetGameObject(this.performance, "Text"):GetComponent("Text").color = UIColor.GRAY AppConst.GameFrameRate = 30 elseif level==3 then Util.GetGameObject(this.Energysaving, "Text"):GetComponent("Text").color = UIColor.GRAY Util.GetGameObject(this.balance, "Text"):GetComponent("Text").color = UIColor.GRAY Util.GetGameObject(this.performance, "Text"):GetComponent("Text").color = UIColor.WHITE AppConst.GameFrameRate = 60 end end --设置切换语言 function SettingInfo.SetMultiLanguageUI(lanIdx) if not Switch_MultiLanguage then return end local flag = lanIdx or GetCurLanguage() local multiLanguageData = G_MultiLanguage[flag] this.multiLanguageDropDownText.text = multiLanguageData.Lang_Show -- if next(dropDownList) == nil then local idx = 0 this.multiLanguageDropDown:ClearOptions() for _, configInfo in ConfigPairs(ConfigManager.GetConfig(ConfigName.MultiLanguage)) do local multiLanguageData = G_MultiLanguage[configInfo.Id] local option = UnityEngine.UI.Dropdown.OptionData.New() option.text = multiLanguageData.Lang_Show this.multiLanguageDropDown.options:Add(option) dropDownList[configInfo.Id] = idx idx = idx + 1 end -- end this.multiLanguageDropDown.value = dropDownList[flag] end return SettingInfo