---@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;