---@class WB_SelectWeaponItem_C:UUserWidget ---@field Button_Item UNewButton ---@field VerticalBox_Weapons UVerticalBox ---@field WidgetSwitcher_IsSelect UWidgetSwitcher --Edit Below-- ---@type WB_SelectWeaponItem_C local WB_SelectWeaponItem = { bInitDoOnce = false } WB_SelectWeaponItem.Owner = nil; WB_SelectWeaponItem.Func = nil; WB_SelectWeaponItem.ItemId = 0; WB_SelectWeaponItem.Signal = 0; WB_SelectWeaponItem.IsSelect = false; function WB_SelectWeaponItem:Construct() self:LuaInit(); end function WB_SelectWeaponItem:LuaInit() if self.bInitDoOnce then return ; end self.Button_Item.OnClicked:Add(self.OnClickItem, self) UITool.HideAllChildren(self.VerticalBox_Weapons); UITool.EnableButtonScroll(self.Button_Item); self.bInitDoOnc = true; end function WB_SelectWeaponItem:Init(InOwner, InFunc, Signal) self.Owner = InOwner; self.Func = InFunc; self.Signal = Signal; self:LuaInit(); end --- 设置 ItemId ---@param InItemId int32 function WB_SelectWeaponItem:SetItemId(InItemId) self.ItemId = InItemId; UITool.HideAllChildren(self.VerticalBox_Weapons); if type(InItemId) == 'table' then UITool.ForeachAllChildren(self.VerticalBox_Weapons, function(index, Widget) if InItemId[index] then Widget:SetItemId(InItemId[index]); Widget:SetVisibility(ESlateVisibility.HitTestInvisible); else Widget:SetVisibility(ESlateVisibility.Collapsed); end end) elseif type(InItemId) == 'number' then local Widget = self.VerticalBox_Weapons:GetChildAt(0); Widget:SetItemId(InItemId); Widget:SetVisibility(ESlateVisibility.HitTestInvisible); end end function WB_SelectWeaponItem:OnClickItem() if self.Func and self.Owner then self.Func(self.Owner, self, self.Num); end end function WB_SelectWeaponItem:GetItemId() return self.ItemId; end function WB_SelectWeaponItem:SetSelect(IsSelect) self.IsSelect = IsSelect; self.WidgetSwitcher_IsSelect:SetActiveWidgetIndex(IsSelect and 1 or 0); end function WB_SelectWeaponItem:GetIsSelect() return self.IsSelect; end function WB_SelectWeaponItem:GetSignal() return self.Signal; end -- function WB_SelectWeaponItem:Tick(MyGeometry, InDeltaTime) -- end -- function WB_SelectWeaponItem:Destruct() -- end return WB_SelectWeaponItem;