---@class WBP_GuidePanel_C:UUserWidget ---@field Overlay_GuideRoot UOverlay --Edit Below-- local WBP_GuidePanel = { TriggeredGuide = {} }; function WBP_GuidePanel:Construct() WBP_GuidePanel.SuperClass.Construct(self) self.TipsPanel = {} self.TipWidgetClasses = { [EGuideWidgetType.Square] = UE.LoadClass(UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Guide/WBP_GuideTips_1.WBP_GuideTips_1_C')), [EGuideWidgetType.Round] = UE.LoadClass(UGCGameSystem.GetUGCResourcesFullPath('Asset/UI/Guide/WBP_GuideTips_2.WBP_GuideTips_2_C')), } end function WBP_GuidePanel:Destruct() WBP_GuidePanel.SuperClass.Destruct(self) end function WBP_GuidePanel:RemoveAllGuide() for ID, GuideTip in pairs(self.TriggeredGuide) do if GuideTip and UE.IsValid(GuideTip) then GuideTip:RemoveFromParent() self.TriggeredGuide[ID] = nil end end end function WBP_GuidePanel:InitFromParam(GuideData) self:SetupGuideWidget(GuideData) end function WBP_GuidePanel:SetupGuideWidget(InGuideData) local GuideID = InGuideData.ID if GuideID == nil or self.TriggeredGuide[GuideID] ~= nil then return end local TipClass = self.TipWidgetClasses[InGuideData.GuideType] if TipClass == nil or UE.IsValid(TipClass) == false then return end local WidgetData = { UIConfig = {UIType = InGuideData.LinkedUIType, Component = InGuideData.LinkedComponent}, TextConfig = {TextType = InGuideData.GuideTextType, Text = InGuideData.GuideText} } local TipWidget = UserWidget.NewWidgetObjectBP(self, TipClass) self.Overlay_GuideRoot:AddChild(TipWidget) TipWidget:SetGuideActionInfo(WidgetData) self.TriggeredGuide[GuideID] = TipWidget end function WBP_GuidePanel:RemoveGuideWidget(InID) local TipWidget = self.TriggeredGuide[InID] if TipWidget == nil or UE.IsValid(TipWidget) == false then return end TipWidget:RemoveFromParent() self.TriggeredGuide[InID] = nil end return WBP_GuidePanel;