UGCProjects/ProjectTemp_T/Script/UI/SelectSoldier/WB_ShowPlayerSelectSoldier.lua

56 lines
1.8 KiB
Lua
Raw Normal View History

2025-01-04 23:00:19 +08:00
---@class WB_ShowPlayerSelectSoldier_C:UUserWidget
---@field Image_head UImage
---@field TextBlock_SoldierName UTextBlock
---@field WidgetSwitcher_IsSelf UWidgetSwitcher
--Edit Below--
---@type WB_ShowPlayerSelectSoldier_C
local WB_ShowPlayerSelectSoldier = {
bInitDoOnce = false;
};
--[==[ Construct
function WB_ShowPlayerSelectSoldier:Construct()
end
-- Construct ]==]
-- function WB_ShowPlayerSelectSoldier:Tick(MyGeometry, InDeltaTime)
-- end
-- function WB_ShowPlayerSelectSoldier:Destruct()
-- end
function WB_ShowPlayerSelectSoldier:SetTargetPlayer(InPlayerKey)
self.TargetPlayerKey = InPlayerKey
--- 延迟设置头像防止GameState未同步下来
UGCEventSystem.SetTimerLoop(self, function()
local HeadIcon = UGCGameSystem.GameState:GetHeadIconByPlayerKey(self.TargetPlayerKey)
UGCSystemLibrary.DownloadImageToUImage(self.Image_head, HeadIcon);
end, 1.);
local TargetSoldierType = UGCGameSystem.GameState:GetSoldierTypeByPlayerKey(self.TargetPlayerKey)
if TargetSoldierType then
self.TextBlock_SoldierName:SetText(SoldierConfig.Chinese[TargetSoldierType])
end
if LocalPlayerKey == nil then
return;
end
if LocalPlayerKey == InPlayerKey then
self.WidgetSwitcher_IsSelf:SetActiveWidgetIndex(1)
else
self.WidgetSwitcher_IsSelf:SetActiveWidgetIndex(0)
end
UGCEventSystem.AddListener(EventTypes.SelectSoldierType, self.UpdatePlayerSoldierType, self);
end
function WB_ShowPlayerSelectSoldier:UpdatePlayerSoldierType(PlayerSoldierType)
local TargetSoldierType = PlayerSoldierType[self.TargetPlayerKey]
if TargetSoldierType then
self.TextBlock_SoldierName:SetText(SoldierConfig.Chinese[TargetSoldierType])
end
end
return WB_ShowPlayerSelectSoldier;