源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

255 lines
9.7 KiB

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