---@class WB_WeaponItem_C:UUserWidget ---@field CanvasPanel_WeaponInfo UCanvasPanel ---@field HorizontalBox_Part UHorizontalBox ---@field Image_WeaponIcon UImage ---@field TextBlock_WeaponName UTextBlock --Edit Below-- local WB_WeaponItem = { bInitDoOnce = false; }; --[==[ Construct function WB_WeaponItem:Construct() end -- Construct ]==] -- function WB_WeaponItem:Tick(MyGeometry, InDeltaTime) -- end -- function WB_WeaponItem:Destruct() -- end function WB_WeaponItem:LuaInit() if self.bInitDoOnce then return end self.bInitDoOnce = true -- 在这里修改 存档中的武器配件存档修改同步后触发 CustomWeaponParts = {[WeaponID] = {PartID, PartID, PartID, ...}, ...} -- UGCEventSystem.AddListener(ArchiveDataConfig.GetParamNotifyEvent(ArchiveDataConfig.EArchiveType.CustomWeaponParts), self.SetWeaponID, self) end function WB_WeaponItem:SetWeaponID(WeaponID) self:LuaInit() if WeaponID ~= nil and self.WeaponID ~= WeaponID then self.WeaponID = WeaponID end local Parts = MyWeaponSystem.GetWeaponBastParts(self.WeaponID) local PartList = UE.GetLocalArchiveData("Weapons") local CustomWeaponParts = nil; if PartList then CustomWeaponParts = PartList[self.WeaponID]; end if CustomWeaponParts and CustomWeaponParts[self.WeaponID] then Parts = CustomWeaponParts[self.WeaponID] UGCLogSystem.LogTree("[WB_WeaponItem_SetWeaponID] Parts:", Parts) end if Parts then for i = 1, self.HorizontalBox_Part:GetChildrenCount() do local Item = self.HorizontalBox_Part:GetChildAt(i - 1) if Parts[i] then Item:SetVisibility(ESlateVisibility.SelfHitTestInvisible) Item:SetItemID(Parts[i]) else Item:SetVisibility(ESlateVisibility.Collapsed) end end end MyWeaponSystem.AsyncLoadItemBigIconToBrush(self.WeaponID, self.Image_WeaponIcon) self.TextBlock_WeaponName:SetText(MyWeaponSystem.GetItemName(self.WeaponID)) end function WB_WeaponItem:SetVisWeaponInfo(IsVis) if IsVis then self.CanvasPanel_WeaponInfo:SetVisibility(ESlateVisibility.HitTestInvisible) else self.CanvasPanel_WeaponInfo:SetVisibility(ESlateVisibility.Hidden) end end return WB_WeaponItem;