--[[ 按键显示界面 ]] local UISettingPCKeyMapping = UIViewClass() local EventSystem = require('Event/EventSystem') local JSON = require("cjson") local DescriptionList = {0,1,2,3,4,5,6,11,12,13,20,21,22,23,32,33,41,1002,1003} function UISettingPCKeyMapping:OnOpened(context) self.keyDescriptionArray = {} self:RefreshView() end function UISettingPCKeyMapping:RefreshView() local dataDic = MDL.Setting.GetPCKeyMap() for i, keyMapEnum in ipairs(DescriptionList) do local keyDescriptionItem = self.keyDescriptionArray[i] if not keyDescriptionItem then keyDescriptionItem = self:InstantiateCollection(self.img_KeyMap, self.img_StateBg.gameObject) UIUtils.SetActive(keyDescriptionItem.gameObject, true) end local data = dataDic[keyMapEnum] if data then local x,y = MDL.Setting.GetKeyPositionByKeyCode(data) keyDescriptionItem.gameObject.transform:SetLocalPosition(x, y, 0) else UIUtils.SetActive(keyDescriptionItem.gameObject, false) end local idsData = DataSheetManager.SetKeyPosition:GetDataByID(keyMapEnum).Describe keyDescriptionItem.UIScrollText:SetText(UIUtils.GetLocalizedTxt(Const_IDS[idsData])) keyDescriptionItem.state_Bg:SetState(self:GetStateByKeyMapEnum(keyMapEnum)) self.keyDescriptionArray[i] = keyDescriptionItem end end function UISettingPCKeyMapping:GetStateByKeyMapEnum(keyMapEnum) if keyMapEnum < 20 then return 2 elseif keyMapEnum < 30 or keyMapEnum == 1002 or keyMapEnum == 1003 then return 1 elseif keyMapEnum < 40 then return 3 else return 0 end end function UISettingPCKeyMapping:OnButtonClicked(comp) if comp == self.btn_Customization then EventSystem.Dispatch(EventID.Setting_ShowPCKeyMapEditing, true) elseif comp == self.btn_Renew then UTL.MessageBox.ShowOKCancelBox(nil,Const_IDS.IDS_PCPackage_ConfirmReset,function() local keyMap = MDL.Setting.ResetKeyMap() AuxUtil.ApplyKeyMap(keyMap) self:RefreshView() end) end end return UISettingPCKeyMapping