---@class WB_PlayerAttribute_C:UAEUserWidget ---@field ShowAttr UWidgetAnimation ---@field VerticalBox_Attrs UVerticalBox --Edit Below-- ---@type WB_PlayerAttribute_C local WB_PlayerAttribute = { bInitDoOnce = false; }; ---@type table WB_PlayerAttribute.AllItems = {}; WB_PlayerAttribute.bShowAttr = false; WB_PlayerAttribute.ShowHealth = false; function WB_PlayerAttribute:Construct() self:LuaInit(); end function WB_PlayerAttribute:LuaInit() if self.bInitDoOnce then return end -- 进行初始化 local Count = self.VerticalBox_Attrs:GetChildrenCount(); UITool.AdaptChildren(self.VerticalBox_Attrs, table.getCount(DefaultSettings.BenefitInto) + (self.ShowHealth and 1 or 0) - 1, ObjectPath.WB_AttributeItem) for i, v in pairs(DefaultSettings.BenefitInto) do local Item = self.VerticalBox_Attrs:GetChildAt(i - 1); Item:SetText(v.Chinese); self.AllItems[i] = Item; Item:SetValue(1); end self.AllItems[DefaultSettings.EPawnBenefitType.Shield]:SetValue(0); if self.ShowHealth then local Item = self.VerticalBox_Attrs:GetChildAt(self.VerticalBox_Attrs:GetChildrenCount() - 1) Item:SetText("生命值"); self.AllItems[#self.AllItems + 1] = Item; end UGCLogSystem.LogTree(string.format("[WB_PlayerAttribute:Construct] self.AllItems ="), self.AllItems) ---self:PlayAnimation(self.ShowTip, 0, 1, EUMGSequencePlayMode.Forward, 1.0) --self:PlayAnimation(self.ShowAttr, 0, 1, EUMGSequencePlayMode.Reverse, 1) --self.Button_Attr.OnClicked:Add(self.OnClickAttr, self) --UGCEventSystem.AddListener(EventTypes.PlayerAttributeChanged, self.OnAttributeChanged, self) self.bInitDoOnce = true; end function WB_PlayerAttribute:OnClickAttr() local Mode = EUMGSequencePlayMode.Forward; if self.bShowAttr then Mode = EUMGSequencePlayMode.Reverse; end self:PlayAnimation(self.ShowAttr, 0, 1, Mode, 1) self.bShowAttr = not self.bShowAttr; end ---@param InVal table function WB_PlayerAttribute:OnAttributeChanged(InVal) UGCLogSystem.LogTree(string.format("[WB_PlayerAttribute:OnAttributeChanged] Table ="), InVal) for i, v in pairs(InVal) do local Item = self.AllItems[i] if Item then Item:SetValue(v); end end local Pawn = UGCGameSystem.GetPlayerPawnByPlayerKey(LocalPlayerController.PlayerKey); self.AllItems[#self.AllItems]:SetValue(UGCPawnAttrSystem.GetHealth(Pawn)); end -- function WB_PlayerAttribute:Tick(MyGeometry, InDeltaTime) -- end -- function WB_PlayerAttribute:Destruct() -- end return WB_PlayerAttribute;