|
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
|