---@class WB_ParkourRank_C:UUserWidget ---@field My_ParkourRankItem UWB_ParkourRankItem_C ---@field VerticalBox_Rank UVerticalBox --Edit Below-- ---@type WB_ParkourRank_C local WB_ParkourRank = { bInitDoOnce = false; LeftTeamType = 1; RightTeamType = 2; }; function WB_ParkourRank:Construct() UGCEventSystem.AddListener(EventEnum.UpdatePlayerScoreData, self.UpdateRank, self); for i = 0, self.VerticalBox_Rank:GetChildrenCount() - 1 do local ItemInst = self.VerticalBox_Rank:GetChildAt(i) ItemInst:SetIndex(i + 1) end end function WB_ParkourRank:UpdateRank() -- ScoreData: {[PlayerKey] = {Kill = int32, Dead = int32, Score = float}...} local RankData = PlayerScoreSystem.GetRank() UGCLogSystem.LogTree("[WB_ParkourRank_UpdateRank]", RankData) for i = 0, self.VerticalBox_Rank:GetChildrenCount() - 1 do local ItemInst = self.VerticalBox_Rank:GetChildAt(i) local PlayerKey = RankData[i + 1] if PlayerKey then ItemInst:SetVisibility(ESlateVisibility.SelfHitTestInvisible) ItemInst:InitRankInfo(PlayerKey) else ItemInst:SetVisibility(ESlateVisibility.Collapsed) end if PlayerKey == UGCSystemLibrary.GetLocalPlayerKey() then self.My_ParkourRankItem:InitRankInfo(PlayerKey) self.My_ParkourRankItem:SetIndex(i + 1) end end end return WB_ParkourRank;