WidgetConfig = WidgetConfig or {} WidgetConfig.EUILayerGroup = { Negative = -1, Least = 0, Bottom = 1, Low = 2, Low_Add1 = 10, MainUI_Sub1 = 10002, MainUI = 10003, Medium = 10004, High = 10005, Top = 10006, Notice = 10007, Tip = 10008, } WidgetConfig.EUIType = { Default = 0, WaitingTime = 1, -- 等待时间 Ranking = 2, -- 排行榜单 Settlement = 3, -- 结算界面 InsufficientNumberOfPeople = 4, -- 人数不足 InvincibleTime = 5, -- 无敌时间 DamageAnim = 6, -- 给予伤害后的动画 -- KillInfo = 7, -- 击杀信息 Guide = 8, -- 玩法说明 FightPanel = 9, -- 战斗界面 PlaceModeMainMenu = 10, -- 放置模式玩法主菜单 PlaceMode = 11, -- 放置模式UI ShowPlaceCode = 12, -- 显示放置代码 ImportPlaceCode = 13, -- 导入放置代码 RunMapTest = 14, -- 跑图测试 RunMapFailure = 15, -- 跑图失败 SaveMap = 16, -- 保存地图 MapOperate = 17, -- 对以有的放置地图进行操作 ReplaceSavedMap = 18, -- 选择替换的地图 RoundFinish = 19, -- 回合结算 PreviewMap = 20, -- 预览地图 Currency = 21, -- 货币栏 Countdown = 22, -- 通用倒计时 Task = 23, -- 任务界面 WeaponSelect = 24, -- 武器配置选择 ReselectWeaponBtn = 25, -- 重选武器界面 TeamChangeTip = 26, -- 队伍变换提示 SelectBuff = 27, -- 增益选择框 CustomWeapon = 28, -- 自定义武器组合 HartTimeStateTip = 29, -- 狩猎时间提示 SecondaryConfirmation = 100, -- 二次确认框 SecondaryConfirmation_Strip = 101, -- 二次确认条 SecondaryConfirmation_EditableText = 102, -- 二次确认命名文本 Debug = 1000, -- 测试UI } -- 默认显示的UI WidgetConfig.DefaultShowWidget = { WidgetConfig.EUIType.DamageAnim; WidgetConfig.EUIType.HartTimeStateTip; } -- 第一次游玩显示的UI WidgetConfig.FirstPlayWidget = { --WidgetConfig.EUIType.Guide; } -- 玩家重生显示的UI WidgetConfig.PlayerRespawnShowWidget = { WidgetConfig.EUIType.ReselectWeaponBtn; } -- 游玩模式所需的UI WidgetConfig.PlayModeUI = { WidgetConfig.EUIType.Guide; WidgetConfig.EUIType.InvincibleTime; WidgetConfig.EUIType.DamageAnim; WidgetConfig.EUIType.WaitingTime; WidgetConfig.EUIType.Ranking; WidgetConfig.EUIType.Settlement; WidgetConfig.EUIType.InsufficientNumberOfPeople; WidgetConfig.EUIType.FightPanel; WidgetConfig.EUIType.WeaponSelect; WidgetConfig.EUIType.ReselectWeaponBtn; --WidgetConfig.EUIType.TeamChangeTip; --WidgetConfig.EUIType.SelectBuff; WidgetConfig.EUIType.CustomWeapon; WidgetConfig.EUIType.SecondaryConfirmation; WidgetConfig.EUIType.HartTimeStateTip; } -- 需要同步显示的UI WidgetConfig.SyncShowPlayModeWidget = { WidgetConfig.EUIType.WaitingTime, WidgetConfig.EUIType.FightPanel, -- WidgetConfig.EUIType.RoundFinish, WidgetConfig.EUIType.Settlement, WidgetConfig.EUIType.InsufficientNumberOfPeople, } -- 有自定义按键设置的UI WidgetConfig.CustomWidget = { WidgetConfig.EUIType.FightPanel, -- WidgetConfig.EUIType.SelectBuff, } WidgetConfig.Configs = { [WidgetConfig.EUIType.Debug] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Debug/WB_Debug.WB_Debug_C'); Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.WaitingTime] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/GamePreparation/W_WaitPlayJoin.W_WaitPlayJoin_C'), Layer = WidgetConfig.EUILayerGroup.Top, ShowOnce = false, }, [WidgetConfig.EUIType.Ranking] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Rank/AutoRank/WB_TeamRank_N.WB_TeamRank_N_C'), Layer = WidgetConfig.EUILayerGroup.MainUI_Sub1, ShowOnce = false, }, [WidgetConfig.EUIType.Settlement] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Settlement/WB_TeamSettlement.WB_TeamSettlement_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.InsufficientNumberOfPeople] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/WB_GameUnableToStart.WB_GameUnableToStart_C'), Layer = WidgetConfig.EUILayerGroup.Top, ShowOnce = false, }, [WidgetConfig.EUIType.InvincibleTime] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/W_InvincibleTime.W_InvincibleTime_C'), Layer = WidgetConfig.EUILayerGroup.Low, ShowOnce = false, }, [WidgetConfig.EUIType.DamageAnim] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/W_DamageAnim.W_DamageAnim_C'), Layer = WidgetConfig.EUILayerGroup.Low, ShowOnce = false, }, [WidgetConfig.EUIType.Guide] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Guide/WB_Guide.WB_Guide_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.FightPanel] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/FightPanel/WB_FightPanel.WB_FightPanel_C'), Layer = WidgetConfig.EUILayerGroup.Low, ShowOnce = false, }, [WidgetConfig.EUIType.PlaceMode] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlacePanel/WB_PlacePanel.WB_PlacePanel_C'), Layer = WidgetConfig.EUILayerGroup.Low, ShowOnce = false, }, [WidgetConfig.EUIType.ShowPlaceCode] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlacePanel/WB_ShowPlaceCode.WB_ShowPlaceCode_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.ImportPlaceCode] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlacePanel/WB_ImportPlaceCode.WB_ImportPlaceCode_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.PlaceModeMainMenu] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlaceGameMenu/WB_PlaceGameMenu.WB_PlaceGameMenu_C'), Layer = WidgetConfig.EUILayerGroup.Low, ShowOnce = false, }, [WidgetConfig.EUIType.RunMapTest] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/RunMapPanel/WB_RunMapPanel.WB_RunMapPanel_C'), Layer = WidgetConfig.EUILayerGroup.Low, ShowOnce = false, }, [WidgetConfig.EUIType.RunMapFailure] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/RunMapPanel/WB_RerunPanel.WB_RerunPanel_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.SaveMap] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/RunMapPanel/WB_SaveMap.WB_SaveMap_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.MapOperate] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlaceGameMenu/WB_MapOperate.WB_MapOperate_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.ReplaceSavedMap] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/ReplaceSavedMap/WB_ReplaceSavedMap.WB_ReplaceSavedMap_C'), Layer = WidgetConfig.EUILayerGroup.Top, ShowOnce = false, }, [WidgetConfig.EUIType.RoundFinish] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/Round/WB_RoundFinish.WB_RoundFinish_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.PreviewMap] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/PlaceGameMenu/WB_PreviewMap.WB_PreviewMap_C'), Layer = WidgetConfig.EUILayerGroup.Low, ShowOnce = false, }, [WidgetConfig.EUIType.Currency] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/Currency/WB_Currency.WB_Currency_C'), Layer = WidgetConfig.EUILayerGroup.Low, ShowOnce = false, }, [WidgetConfig.EUIType.SecondaryConfirmation] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SecondaryConfirmation/WB_SecondaryConfirmation.WB_SecondaryConfirmation_C'), Layer = WidgetConfig.EUILayerGroup.Notice, ShowOnce = false, }, [WidgetConfig.EUIType.SecondaryConfirmation_Strip] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SecondaryConfirmation/WB_SecondaryConfirmation_Strip.WB_SecondaryConfirmation_Strip_C'), Layer = WidgetConfig.EUILayerGroup.Notice, ShowOnce = false, }, [WidgetConfig.EUIType.SecondaryConfirmation_EditableText] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SecondaryConfirmation/WB_SecondaryConfirmation_EditableText.WB_SecondaryConfirmation_EditableText_C'), Layer = WidgetConfig.EUILayerGroup.Notice, ShowOnce = false, }, [WidgetConfig.EUIType.ReselectWeaponBtn] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SelectWeapon/WB_ReselectWeaponBtn.WB_ReselectWeaponBtn_C'), Layer = WidgetConfig.EUILayerGroup.MainUI, ShowOnce = false, }, [WidgetConfig.EUIType.TeamChangeTip] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Tip/W_TeamTip.W_TeamTip_C'), Layer = WidgetConfig.EUILayerGroup.Notice, ShowOnce = false, }, [WidgetConfig.EUIType.Countdown] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/WB_Countdown.WB_Countdown_C'), Layer = WidgetConfig.EUILayerGroup.Notice, ShowOnce = false, }, [WidgetConfig.EUIType.Task] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/StatusUI/Task/WB_Task.WB_Task_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.WeaponSelect] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SelectWeapon/WB_WeaponSelect.WB_WeaponSelect_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.SelectBuff] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SelectBuff/WB_SelectIncrease.WB_SelectIncrease_C'), Layer = WidgetConfig.EUILayerGroup.MainUI, ShowOnce = false, }, [WidgetConfig.EUIType.CustomWeapon] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/SelectWeapon/WB_CustomWeapon.WB_CustomWeapon_C'), Layer = WidgetConfig.EUILayerGroup.High, ShowOnce = false, }, [WidgetConfig.EUIType.HartTimeStateTip] = { Widget = UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Tip/WB_TimeStateTip.WB_TimeStateTip_C'), Layer = WidgetConfig.EUILayerGroup.Tip, ShowOnce = false, }, } function WidgetConfig.GetWidgetPathFromUIType(UIType) if not WidgetConfig.CheckUIType(UIType) then return end return WidgetConfig.Configs[UIType].Widget end function WidgetConfig.GetWidgetLayer(UIType) if not WidgetConfig.CheckUIType(UIType) then return end return WidgetConfig.Configs[UIType].Layer end function WidgetConfig.GetWidgetShowOnce(UIType) if not WidgetConfig.CheckUIType(UIType) then return end return WidgetConfig.Configs[UIType].ShowOnce end function WidgetConfig.CheckUIType(UIType) return (WidgetConfig.Configs[UIType] ~= nil) end function WidgetConfig.GetAllWidgetTypeFromLayer(Layer) local Res = {} for UIType, _ in pairs(WidgetConfig.Configs) do if WidgetConfig.GetWidgetLayer(UIType) == Layer then Res[#Res + 1] = UIType end end return Res end -- HideUI -------------------------------------------------------------------------------------------------------------------------------- --- 默认UI的隐藏 function WidgetConfig.HideDefaultUI() --- 隐藏平底锅切换扔出模式 --- ShootingUI.Customize_ThrowPlus:SetAdvancedCollapsed(true) --- local MainControlPanel = UGCWidgetManagerSystem.GetMainControlUI() -- local MainControlPanel = GameBusinessManager.GetWidgetFromName(ingame, "MainControlPanelTochButton_C") local MainControlPanel = UGCWidgetManagerSystem.GetMainUI() if MainControlPanel ~= nil then local MainControlBaseUITemp = MainControlPanel.MainControlBaseUI; MainControlBaseUITemp.Image_IngameLogo:SetVisibility(ESlateVisibility.Collapsed) --- 局内游戏Logo MainControlBaseUITemp.Image_0:SetVisibility(ESlateVisibility.Collapsed) --- 指南针指针 MainControlBaseUITemp.NavigatorPanel:SetVisibility(ESlateVisibility.Collapsed) --- 指南针界面 MainControlBaseUITemp.SurviveInfoPanel:SetVisibility(ESlateVisibility.Collapsed) --- 存活人数 -- MainControlBaseUITemp.CanvasPanel_HelmetArmor:SetVisibility(ESlateVisibility.Collapsed) --- 头盔、护甲按钮 MainControlBaseUITemp.CanvasPanelSurviveKill:SetVisibility(ESlateVisibility.Collapsed) --- 剩余人数、淘汰数 MainControlBaseUITemp.SignalReceivingAreaTIPS_UIBP:SetVisibility(ESlateVisibility.Collapsed) --- 信号区提示 MainControlBaseUITemp.CircleChasingProgress:SetVisibility(ESlateVisibility.Collapsed) --- 刷圈进度 MainControlBaseUITemp.IsNeedTeamPanel = false --- 不显示队友面板 -- MainControlBaseUITemp.CanvasPanel_BackpackPanel:AddAdvancedCollapsedCount(1) --- 背包按钮 -- UGCWidgetManagerSystem.SubWidgetHiddenLayer(MainControlBaseUITemp.ChangeSight_UIBP.CanvasPanel_Sight)--- 倍镜切换 -- MainControlBaseUITemp.CanvasPanel_MiniMapAndSetting:SetAdvancedCollapsed(ESlateVisibility.Collapsed); --小地图 --local ShootingPanel = UGCWidgetManagerSystem.GetShootingUIPanel() --if ShootingPanel then -- ShootingPanel.SwitchWeaponSlot_Mode2_C_0:SetVisibility(ESlateVisibility.Collapsed) --- 右武器栏 --else -- UGCLogSystem.LogError("[WidgetConfig_HideDefaultUI] ShootingPanel is nil") --end --MainControlBaseUITemp.ShootingUIPanel.SwitchWeaponSlot_Mode2:SetVisibility(ESlateVisibility.Collapsed) --- 右武器栏 --MultiLayer_RightWeaponSlot --折叠二号武器槽位 --MainControlBaseUITemp.ShootingUIPanel.SwitchWeaponSlot_Mode2.Image_Selected:SetVisibility(ESlateVisibility.Collapsed) --MainControlBaseUITemp.ShootingUIPanel.SwitchWeaponSlot_Mode2.GridPanel_FireMode:SetVisibility(ESlateVisibility.Collapsed) --MainControlBaseUITemp.ShootingUIPanel.SwitchWeaponSlot_Mode2.MultiLayer_Pistol:SetVisibility(ESlateVisibility.Collapsed) --local ShootingUIPanel = MainControlPanel.ShootingUIPanel --ShootingUIPanel:SetVisibility(ESlateVisibility.Collapsed) ---不显示战斗界面 UGCEventSystem.SetTimerLoop(UGCGameSystem.GameState, function() MainControlPanel.SkillLayer:SetVisibility(ESlateVisibility.Collapsed); -- 技能1 end, 1) end -- UGCWidgetManagerSystem.LoadLobbyChatFrameUI() --- 加载大厅聊天框UI end WidgetConfig.EDefaultUIMode = { None = 1; Menu = 2; PlaceMode = 3; } WidgetConfig.NowDefaultUIMode = WidgetConfig.EDefaultUIMode.None WidgetConfig.bInitializedHideWidgetInfo = false function WidgetConfig.InitHideWidgetInfo() if WidgetConfig.bInitializedHideWidgetInfo then return end local MainControlPanel = GameBusinessManager.GetWidgetFromName(ingame, "MainControlPanelTochButton_C"); local PlayerInfoPanel = GameBusinessManager.GetWidgetFromName(ingame, "PlayerInfoPanel_C") WidgetConfig.HideWidgetInfo = { [WidgetConfig.EDefaultUIMode.Menu] = { --MainControlPanel.MainControlBaseUI.Canvas_Speaker, --MainControlPanel.MainControlBaseUI.Canvas_Microphone, --MainControlPanel.MainControlBaseUI.CanvasPanel_RunState, --MainControlPanel.MainControlBaseUI.ChatAndChatPanelCanvas, --MainControlPanel.MainControlBaseUI.Canvas_Speaker, --MainControlPanel.MainControlBaseUI.ChatAndChatPanelCanvas, --MainControlPanel.MainControlBaseUI.CanvasPanel_FreeCamera, MainControlPanel.MainControlBaseUI, MainControlPanel.ShootingUIPanel }, [WidgetConfig.EDefaultUIMode.PlaceMode] = { --MainControlPanel.MainControlBaseUI.Canvas_Speaker, --MainControlPanel.MainControlBaseUI.Canvas_Microphone, --MainControlPanel.MainControlBaseUI.CanvasPanel_RunState, --MainControlPanel.MainControlBaseUI.ChatAndChatPanelCanvas, --MainControlPanel.MainControlBaseUI.Canvas_Speaker, --MainControlPanel.MainControlBaseUI.ChatAndChatPanelCanvas, --MainControlPanel.MainControlBaseUI.CanvasPanel_FreeCamera, MainControlPanel.MainControlBaseUI, MainControlPanel.ShootingUIPanel.CustomFireBtnR, MainControlPanel.ShootingUIPanel.CustomFireBtnL, MainControlPanel.ShootingUIPanel.SwitchWeaponSlot_Mode2, MainControlPanel.ShootingUIPanel.SwitchWeaponSlot_Mode2_C_0, }, } WidgetConfig.bInitializedHideWidgetInfo = true end function WidgetConfig.SetDefaultUIMode(InDefaultUIMode) if not table.hasValue(WidgetConfig.EDefaultUIMode, InDefaultUIMode) then return end WidgetConfig.InitHideWidgetInfo() if WidgetConfig.NowDefaultUIMode ~= InDefaultUIMode then if WidgetConfig.NowDefaultUIMode ~= WidgetConfig.EDefaultUIMode.None then end WidgetConfig.NowDefaultUIMode = InDefaultUIMode if WidgetConfig.NowDefaultUIMode == WidgetConfig.EDefaultUIMode.None then return end local HideWidgetList = WidgetConfig.HideWidgetInfo[WidgetConfig.NowDefaultUIMode] for i, v in pairs(HideWidgetList) do v:SetVisibility(ESlateVisibility.Collapsed); end end end function WidgetConfig.RemoveDefaultUIMode(InDefaultUIMode) if not table.hasValue(WidgetConfig.EDefaultUIMode, InDefaultUIMode) or WidgetConfig.NowDefaultUIMode ~= InDefaultUIMode then return end WidgetConfig.InitHideWidgetInfo() local HideWidgetList = WidgetConfig.HideWidgetInfo[InDefaultUIMode] for i, v in pairs(HideWidgetList) do v:SetVisibility(ESlateVisibility.SelfHitTestInvisible); end WidgetConfig.NowDefaultUIMode = WidgetConfig.EDefaultUIMode.None end -- HideUI --------------------------------------------------------------------------------------------------------------------------------