---@class WB_SplitWeaponList_C:UUserWidget ---@field ScrollBox_Item1 UScrollBox ---@field ScrollBox_Item2 UScrollBox ---@field VerticalBox_Items UVerticalBox --Edit Below-- ---@type WB_SplitWeaponList_C local WB_SplitWeaponList = { bInitDoOnce = false } function WB_SplitWeaponList:Construct() self:LuaInit(); end function WB_SplitWeaponList:LuaInit() if self.bInitDoOnce then return ; end self.bInitDoOnce = true; end WB_SplitWeaponList.Owner = nil; WB_SplitWeaponList.Func = nil; function WB_SplitWeaponList:Init(InOwner, InFunc) self.Owner = InOwner; self.Func = InFunc; end function WB_SplitWeaponList:SetTypes(InTypes) -- 检查这是几个 local TypeCount = table.getCount(InTypes); local Weapons = GetWeaponIdsByTypeNew(InTypes[1]); -- 设置数据 self:SetWeapons(self.ScrollBox_Item1, Weapons, 1); if TypeCount == 1 then self.VerticalBox_Items:GetChildAt(1):SetVisibility(ESlateVisibility.Collapsed); else -- 再次设置 Weapons = GetWeaponIdsByTypeNew(InTypes[2]); self:SetWeapons(self.ScrollBox_Item2, Weapons, 2); self.VerticalBox_Items:GetChildAt(1):SetVisibility(ESlateVisibility.SelfHitTestInvisible); end -- 默认设置为 1 self:OnClickItem(self.ScrollBox_Item1:GetChildAt(0)) self:OnClickItem(self.ScrollBox_Item2:GetChildAt(0)) end function WB_SplitWeaponList:SetWeapons(InBox, InWeaponsList, Signal) UITool.AdaptChildren(InBox, table.getCount(InWeaponsList), ObjectPath.WB_SelectWeaponItem, function(Widget) Widget:Init(self, self.OnClickItem, Signal); end); -- 设置数据进去 UITool.ForeachAllChildren(InBox, function(index, Widget) if InWeaponsList[index] then Widget:SetItemId(InWeaponsList[index]); Widget:SetVisibility(ESlateVisibility.SelfHitTestInvisible); else Widget:SetVisibility(ESlateVisibility.Collapsed); end end) end WB_SplitWeaponList.CurrItems = {}; WB_SplitWeaponList.CurrSelectItems = {}; function WB_SplitWeaponList:OnClickItem(ChildWidget) -- 通过遍历的方式进行寻找 local Num = ChildWidget:GetSignal() if self.CurrItems[Num] ~= nil then self.CurrItems[Num]:SetSelect(false); end self.CurrItems[Num] = ChildWidget; self.CurrItems[Num]:SetSelect(true); self.CurrSelectItems[Num] = ChildWidget:GetItemId(); self.Func(self.Owner, self.CurrSelectItems) end -- function WB_SplitWeaponList:Tick(MyGeometry, InDeltaTime) -- end -- function WB_SplitWeaponList:Destruct() -- end return WB_SplitWeaponList