---@class WBP_SelectSkillSlots_C:UUserWidget ---@field CanvasPanel_Main UCanvasPanel ---@field HorizontalBox_Skills UHorizontalBox ---@field WBP_SelectSkillItem UWBP_SelectSkillItem_C ---@field WBP_SelectSkillItem_0 UWBP_SelectSkillItem_C ---@field WBP_SelectSkillItem_1 UWBP_SelectSkillItem_C ---@field WBP_SkillSelectButton UWBP_SkillSelectButton_C ---@field WBP_WidgetHeader UWBP_WidgetHeader_C ---@field WidgetSwitcher_Main UWidgetSwitcher --Edit Below-- local WBP_SelectSkillSlots = { bInitDoOnce = false; SkillItemId = 0; }; function WBP_SelectSkillSlots:Construct() WBP_SelectSkillSlots.SuperClass:Construct() self.WBP_WidgetHeader:Construct() end function WBP_SelectSkillSlots:InitFromParam(InData, InPos) self:ShowSelectSkill(InData, InPos) end function WBP_SelectSkillSlots:ShowSelectSkill(InItem, InPosition) print(string.format('[WBP_SelectSkillSlots:ShowSelectSkill] 显示选择')) local CanvasSlot = self.CanvasPanel_Main.Slot CanvasSlot:SetPosition(InPosition) self:InitData(InItem.ItemID) end function WBP_SelectSkillSlots:InitData(InId) -- 初始化数据 print(string.format('[WBP_SelectSkillSlots:InitData] 初始化Id = %d', InId)) self.SkillItemId = InId local PC = GameDataManager.GetLocalPlayerController() local InitiativeSkillSlots = PC:GetInitiativeSkillSlots() if #InitiativeSkillSlots < 3 then -- 此时是 select Button self.WidgetSwitcher_Main:SetActiveWidgetIndex(1) self.WBP_SkillSelectButton:SetSkillId(self.SkillItemId) else self.WidgetSwitcher_Main:SetActiveWidgetIndex(0) self:FillDatas() end end -- 填充数据到背包中 function WBP_SelectSkillSlots:FillDatas() print(string.format('[WBP_SelectSkillSlots:FillDatas] 填充数据')) local PC = GameDataManager.GetLocalPlayerController() local InitiativeSkillSlots = PC:GetInitiativeSkillSlots() print(string.format('[WBP_SelectSkillSlots:FillDatas] 主动技能数量:%d', #InitiativeSkillSlots)) for i = 1, #InitiativeSkillSlots do local Slot = InitiativeSkillSlots[i] if i <= 3 then local ItemId = PC.ActiveSkillNameList[Slot].SkillName * 100 + PC.ActiveSkillNameList[Slot].SkillLevel * 10 + 20000 self.HorizontalBox_Skills:GetChildAt(i - 1):SetLastItemId(ItemId) self.HorizontalBox_Skills:GetChildAt(i - 1):SetReplaceItemId(self.SkillItemId) end end end -- function WBP_SelectSkillSlots:Tick(MyGeometry, InDeltaTime) -- end -- function WBP_SelectSkillSlots:Destruct() -- end return WBP_SelectSkillSlots;