UGCProjects/SoldierWar/Script/UI/Tool/WB_SelectWeaponButton.lua
2025-01-04 23:00:19 +08:00

68 lines
1.6 KiB
Lua

---@class WB_SelectWeaponButton_C:UUserWidget
---@field Image_Ring UImage
---@field NewButton_Select UNewButton
--Edit Below--
---@type WB_SelectWeaponButton_C
local WB_SelectWeaponButton = { bInitDoOnce = false }
WB_SelectWeaponButton.HideTime = 0;
WB_SelectWeaponButton.Material = nil;
function WB_SelectWeaponButton:Construct()
self:LuaInit();
end
function WB_SelectWeaponButton:LuaInit()
if self.bInitDoOnce then return ; end
self:GetMaterial();
UITool.BindButtonClicked(self.NewButton_Select, self.OnClickSelect, self)
self.bInitDoOnce = true;
end
function WB_SelectWeaponButton:OnShowPanel(...)
local vars = { ... };
local Time = vars[1];
self:SetHideTime(Time);
end
function WB_SelectWeaponButton:SetHideTime(InTime)
self.HideTime = InTime + UE.GetServerTime();
self:HideSelf(false);
GlobalTickTool:AddTick(self, function(o, dt, st)
local Percent = 1 - (o.HideTime - st) / InTime;
o:GetMaterial():SetScalarParameterValue("Mask_Percent", Percent);
end, nil, nil, InTime, function(o)
o:HideSelf(true);
end)
end
function WB_SelectWeaponButton:HideSelf(IsHide)
if IsHide then
self:SetVisibility(ESlateVisibility.Collapsed);
else
self:SetVisibility(ESlateVisibility.SelfHitTestInvisible);
end
end
function WB_SelectWeaponButton:GetMaterial()
if self.Material == nil then
self.Material = self.Image_Ring:GetDynamicMaterial();
end
return self.Material;
end
function WB_SelectWeaponButton:OnClickSelect()
WidgetManager:ShowPanel(WidgetConfig.EUIType.SelectWeapon, false);
end
-- function WB_SelectWeaponButton:Tick(MyGeometry, InDeltaTime)
-- end
-- function WB_SelectWeaponButton:Destruct()
-- end
return WB_SelectWeaponButton