BasicSettingView = BasicSettingView or BaseClass(BaseItem) local BasicSettingView = BasicSettingView local lua_settingM = lua_settingM local lua_soundM = lua_soundM -- 挂机设置界面 function BasicSettingView:__init(parent) self.base_file = "setting" self.layout_file = "BasicSettingView" self.perform_item_list = {} self.perform_list = {} self.model = GameSettingModel:GetInstance() self:Load() end function BasicSettingView:Load_callback() self:LoadSuccess() self:InitEvent() end function BasicSettingView:LoadSuccess() self.perform_con = self:GetChild("perform_con") -- 音效和同屏人数设置 self.count_slider = self:GetChild("count/countSlider"):GetComponent("Slider") self.count_value = self:GetChild("count/value"):GetComponent("TextMeshProUGUI") self.music_slider = self:GetChild("Music/musicSlider"):GetComponent("Slider") -- 背景音乐 self.music_value = self:GetChild("Music/value"):GetComponent("TextMeshProUGUI") self.music_btn = self:GetChild("Music/valueBtn"):GetComponent("Image") self.soundEffect_slider = self:GetChild("soundEffect/effectSlider"):GetComponent("Slider") -- 音效 self.soundEffect_value = self:GetChild("soundEffect/value"):GetComponent("TextMeshProUGUI") self.soundEffect_btn = self:GetChild("soundEffect/valueBtn"):GetComponent("Image") self:InitPerformItem() if self.need_refreshData then self:SetData() end end -- 初始化性能设置item function BasicSettingView:InitPerformItem() self.perform_list = GameSettingManager.PerformanceList if self.perform_list == nil or #self.perform_list == 0 then return end local item local call_back = function(symbol,val) self:SetPerformance(symbol,val) end for i,v in ipairs(self.perform_list) do if self.perform_item_list[i] == nil then item = SettingPerformItem.New(self.perform_con) self.perform_item_list[i] = item end item = self.perform_item_list[i] item:SetData(v,call_back) end self:SetPerformData() end function BasicSettingView:SetPerformance(key,val) --修改画质的时候同步修改后处理效果 if key == "quality" then lua_settingM:SetPostEffectLevel(val) end lua_settingM:SetPerformanceProperty(key,val) CookieWrapper.Instance:WriteAll() end function BasicSettingView:InitEvent() -- 滑动条拖动完毕后,写cookie local function onSliderDragEnd(target) local value = target:GetComponent("Slider").value if target == self.music_slider.gameObject then lua_settingM:SetSoundValue(value) local value_img_res = self.music_slider.value == 0 and "setting_value_2" or "setting_value_1" lua_resM:setImageSprite(self, self.music_btn, "setting_asset",value_img_res) elseif target == self.soundEffect_slider.gameObject then lua_settingM:SetEffectSoundValue(value) local value_img_res = self.soundEffect_slider.value == 0 and "setting_value_2" or "setting_value_1" lua_resM:setImageSprite(self, self.soundEffect_btn, "setting_asset",value_img_res) elseif target == self.count_slider.gameObject then lua_settingM:SetPlayerCounts(value) end CookieWrapper.Instance:WriteAll() end AddDragEndEvent(self.music_slider.gameObject,onSliderDragEnd) AddDragEndEvent(self.soundEffect_slider.gameObject,onSliderDragEnd) AddDragEndEvent(self.count_slider.gameObject,onSliderDragEnd) local function onSliderClick(target) local value = target:GetComponent("Slider").value if target == self.music_slider.gameObject then self.music_value.text = tostring(value).."%" lua_settingM:SetSoundValue(value) lua_soundM:ChangeVolume(self.music_slider.value / 100) local value_img_res = self.music_slider.value == 0 and "setting_value_2" or "setting_value_1" lua_resM:setImageSprite(self, self.music_btn, "setting_asset",value_img_res) elseif target == self.soundEffect_slider.gameObject then self.soundEffect_value.text = value.."%" lua_settingM:SetEffectSoundValue(value) lua_soundM:ChangeVolumeEffect(self.soundEffect_slider.value / 100) local value_img_res = self.soundEffect_slider.value == 0 and "setting_value_2" or "setting_value_1" lua_resM:setImageSprite(self, self.soundEffect_btn, "setting_asset",value_img_res) elseif target == self.count_slider.gameObject then self.count_value.text = value lua_settingM:SetPlayerCounts(value) end CookieWrapper.Instance:WriteAll() end AddClickEvent(self.music_slider.gameObject,onSliderClick) AddClickEvent(self.soundEffect_slider.gameObject,onSliderClick) AddClickEvent(self.count_slider.gameObject,onSliderClick) -- 滑动条拖动时改变音量以及数值 local function onSliderDrag(target) if target == self.music_slider.gameObject then self.music_value.text = tostring(self.music_slider.value).."%" lua_soundM:ChangeVolume(self.music_slider.value / 100) elseif target == self.soundEffect_slider.gameObject then self.soundEffect_value.text = self.soundEffect_slider.value.."%" lua_soundM:ChangeVolumeEffect(self.soundEffect_slider.value / 100) elseif target == self.count_slider.gameObject then self.count_value.text = self.count_slider.value end end AddDragEvent(self.music_slider.gameObject,onSliderDrag) AddDragEvent(self.soundEffect_slider.gameObject,onSliderDrag) AddDragEvent(self.count_slider.gameObject,onSliderDrag) local on_click = function ( click_obj ) if self.music_btn.gameObject == click_obj then -- local data = lua_settingM.soundSet if self.music_slider.value <= 0 then--还原到默认音量 self.music_slider.value = lua_settingM:GetBasicDefualt("music") self.music_value.text = lua_settingM:GetBasicDefualt("music").."%" lua_soundM:ChangeVolume(self.music_slider.value / 100) lua_resM:setImageSprite(self, self.music_btn, "setting_asset","setting_value_1") else--切换到静音状态 self.music_slider.value = 0 self.music_value.text = "0%" lua_soundM:ChangeVolume(self.music_slider.value / 100) lua_resM:setImageSprite(self, self.music_btn, "setting_asset","setting_value_2") end lua_settingM:SetSoundValue(self.music_slider.value) elseif self.soundEffect_btn.gameObject == click_obj then -- local data = lua_settingM.soundSet if self.soundEffect_slider.value <= 0 then--还原到默认音量 self.soundEffect_slider.value = lua_settingM:GetBasicDefualt("soundEffect") self.soundEffect_value.text = lua_settingM:GetBasicDefualt("soundEffect").."%" lua_soundM:ChangeVolumeEffect(self.soundEffect_slider.value / 100) lua_resM:setImageSprite(self, self.soundEffect_btn, "setting_asset","setting_value_1") else--切换到静音状态 self.soundEffect_slider.value = 0 self.soundEffect_value.text = "0%" lua_soundM:ChangeVolumeEffect(self.soundEffect_slider.value / 100) lua_resM:setImageSprite(self, self.soundEffect_btn, "setting_asset","setting_value_2") end lua_settingM:SetEffectSoundValue(self.soundEffect_slider.value) end end AddClickEvent(self.music_btn.gameObject, on_click) AddClickEvent(self.soundEffect_btn.gameObject, on_click) local function return_default(cur_index) if not self.is_loaded then return end if cur_index == GameSettingModel.TabData.SYSYTEM then self:ReturnDefault() end end self:BindEvent(GameSettingModel:GetInstance(), GameSettingModel.RETURN_ALL_DEFAULT, return_default) end function BasicSettingView:SetData() if self.is_loaded then self:SetSliderData() self.need_refreshData = false else self.need_refreshData = true end end function BasicSettingView:SetSliderData() local data = lua_settingM.soundSet self.music_slider.value = data.sound self.soundEffect_slider.value = data.effectSound self.music_value.text = data.sound.."%" self.soundEffect_value.text = data.effectSound.."%" local value_img_res_1 = self.music_slider.value == 0 and "setting_value_2" or "setting_value_1" lua_resM:setImageSprite(self, self.music_btn, "setting_asset",value_img_res_1) local value_img_res_2 = self.soundEffect_slider.value == 0 and "setting_value_2" or "setting_value_1" lua_resM:setImageSprite(self, self.soundEffect_btn, "setting_asset",value_img_res_2) local playerCounts = lua_settingM:GetPlayerCounts() self.count_slider.value = playerCounts self.count_value.text = playerCounts end function BasicSettingView:SetPerformData() if self.perform_list == nil then return end local state for i,v in ipairs(self.perform_list) do if self.perform_item_list[i] then state = lua_settingM:GetPerformanceProperty(v.setting_str) self.perform_item_list[i]:SelectBtnByVal(state) end end end function BasicSettingView:__delete() -- 界面销毁 for i,item in pairs(self.perform_item_list) do item:DeleteMe() item = nil end self.perform_item_list = {} -- 重新加载一次音量设置 lua_soundM:LoadSetting() end function BasicSettingView:ReturnDefault() -- 还原表现 self.music_slider.value = lua_settingM:GetBasicDefualt("music") self.music_value.text = lua_settingM:GetBasicDefualt("music").."%" lua_soundM:ChangeVolume(self.music_slider.value / 100) self.soundEffect_slider.value = lua_settingM:GetBasicDefualt("soundEffect") self.soundEffect_value.text = lua_settingM:GetBasicDefualt("soundEffect").."%" lua_soundM:ChangeVolumeEffect(self.soundEffect_slider.value / 100) self.count_slider.value = lua_settingM:GetBasicDefualt("playerCounts") self.count_value.text = lua_settingM:GetBasicDefualt("playerCounts") -- 还原配置 lua_settingM:SetSoundValue(lua_settingM:GetBasicDefualt("music")) lua_settingM:SetEffectSoundValue(lua_settingM:GetBasicDefualt("soundEffect")) lua_settingM:SetPlayerCounts(lua_settingM:GetBasicDefualt("playerCounts")) lua_settingM:ApplyPlayerCounts() -- 还原性能设置 if self.perform_list == nil then return end local val for i,v in ipairs(self.perform_list) do if self.perform_item_list[i] then val = lua_settingM:GetPerformanceDefualt(v.setting_str) self.perform_item_list[i]:SelectBtnByVal(val) lua_settingM:SetPerformanceProperty(v.setting_str,val) end end end