--设置窗口对象 local LobbySettingView = {} local M = LobbySettingView setmetatable(M, { __index = BaseWindow }) function LobbySettingView.new() local self = setmetatable({}, { __index = M }) self.class = 'SettingView' self._close_destroy = true self:init('ui://Lobby/SettingWindow1') return self end function M:init(url) BaseWindow.init(self, url) local view = self._view local slider_sound = view:GetChild('slider_sound') local slider_music = view:GetChild('slider_music') local btn_music = view:GetChild('btn_music') local btn_sound = view:GetChild('btn_sound') btn_music.selected = (GameApplication.Instance.MusicValue < 5 and false or true) slider_sound.value = GameApplication.Instance.SoundValue slider_music.value = GameApplication.Instance.MusicValue btn_sound.selected = GameApplication.Instance.SoundValue < 5 and false or true btn_sound.icon = btn_sound.selected and 'ui://Common/on' or 'ui://Common/off' btn_music.icon = btn_music.selected and 'ui://Common/on' or 'ui://Common/off' slider_music.onChanged:Add(function() GameApplication.Instance.MusicValue = slider_music.value btn_music.selected = GameApplication.Instance.MusicValue < 5 and false or true end) slider_sound.onChanged:Add(function() GameApplication.Instance.SoundValue = slider_sound.value btn_sound.selected = GameApplication.Instance.SoundValue < 5 and false or true end) btn_sound.onChanged:Add(function() GameApplication.Instance.SoundValue = btn_sound.selected and 50 or 0 slider_sound.value = GameApplication.Instance.SoundValue btn_sound.icon = btn_sound.selected and 'ui://Common/on' or 'ui://Common/off' end) btn_music.onChanged:Add(function() GameApplication.Instance.MusicValue = btn_music.selected and 50 or 0 slider_music.value = GameApplication.Instance.MusicValue btn_music.icon = btn_music.selected and 'ui://Common/on' or 'ui://Common/off' end) local _btn_logout = self._view:GetChild('btn_del') _btn_logout.onClick:Set(function() local _curren_msg = MsgWindow.new(self._root_view, '您是否退出当前账号?', MsgWindow.MsgMode.OkAndCancel) _curren_msg.onOk:Add(function() PlayerPrefs.DeleteKey('session_id') PlayerPrefs.Save() RestartGame() end) _curren_msg:Show() end) --绑定按钮 local btn_bing = view:GetChild('btn_bind') if btn_bing then btn_bing.selected = DataManager.SelfUser.is_lock == 1 -- btn_bing.icon = btn_bing.selected and 'ui://Common/on' or 'ui://Common/off' btn_bing.onClick:Set(function(context) local _curren_msg = MsgWindow.new(self._root_view, string.format( btn_bing.selected and "是否锁定当前设备\n锁定之后其余设备无法登陆" or "是否解除该设备\n解除之后所有设备都可登陆"), MsgWindow.MsgMode.OkAndCancel) _curren_msg.onOk:Add( function() local loginCtr = ControllerManager.GetController(LoginController) loginCtr:LockDevice(btn_bing.selected, function(res) if res.ReturnCode ~= 0 then ViewUtil.ErrorTip(res.ReturnCode, "设置失败") btn_bing.selected = not btn_bing.selected else DataManager.SelfUser.is_lock = btn_bing.selected and 1 or 0 end -- btn_bing.icon = btn_bing.selected and 'ui://Common/on' or 'ui://Common/off' end) end ) -- _curren_msg.onCancel:Add(function() -- btn_bing.selected = not btn_bing.selected -- btn_bing.icon = btn_bing.selected and 'ui://Common/on' or 'ui://Common/off' -- end) _curren_msg._view:GetChild('btn_close').onClick:Set(function() btn_bing.selected = not btn_bing.selected -- btn_bing.icon = btn_bing.selected and 'ui://Common/on' or 'ui://Common/off' _curren_msg:Destroy() end) _curren_msg:Show() end) end btn_music.onChanged:Add(function() GameApplication.Instance.MusicValue = btn_music.selected and 50 or 0 slider_music.value = GameApplication.Instance.MusicValue end) end return M