---@class WB_SelectDisableChild_C:UUserWidget ---@field Image_IsNew UImage ---@field NewButton_Change UNewButton ---@field TextBlock_Name UTextBlock ---@field TextBlock_New UTextBlock ---@field WidgetSwitcher_BG UWidgetSwitcher ---@field WidgetSwitcher_IsSelected UWidgetSwitcher ---@field WidgetSwitcher_IsSelectEnable UWidgetSwitcher --Edit Below-- ---@type WB_SelectDisableChild_C local WB_SelectDisableChild = { bInitDoOnce = false; EnableType = false; -- 该变量要同步改变 } function WB_SelectDisableChild:Construct() self:LuaInit(); end function WB_SelectDisableChild:LuaInit() if self.bInitDoOnce then return ; end self.bInitDoOnce = true; -- 绑定按键 UITool.BindButtonClicked(self.NewButton_Change, self.OnClickDisable, self); end function WB_SelectDisableChild:OnClickDisable() -- 直接发送 self.EnableType = not self.EnableType; UGCLogSystem.Log("[WB_SelectDisableChild:OnClickDisable] EnableType = %s", tostring(self.EnableType)); self:SetSelected(self.EnableType); GameState:SendMiniGameRPC("SetEnableDisableType", LocalPlayerKey, self.DisableType, self.EnableType); -- self.TextBlock_New:SetVisibility(ESlateVisibility.Collapsed); end WB_SelectDisableChild.DisableType = nil; function WB_SelectDisableChild:SetDisableType(InType) self.DisableType = InType; -- 初始化名字 if DisableInfo[InType] ~= nil then --- 所有默认都是不勾选的,因此此处要改用为启用 if DisableInfo[InType].Default then self.TextBlock_Name:SetText("启用" .. DisableInfo[InType].Name); else self.TextBlock_Name:SetText("禁用" .. DisableInfo[InType].Name); end if DisableInfo[InType].New then self.TextBlock_New:SetVisibility(ESlateVisibility.SelfHitTestInvisible); else self.TextBlock_New:SetVisibility(ESlateVisibility.Collapsed); end if DisableInfo[InType].IsSelectEnable then self.WidgetSwitcher_IsSelectEnable:SetActiveWidgetIndex(1) end end local ArchiveData = ArchiveTable[LocalPlayerKey] if ArchiveData then if ArchiveData.Disables == nil or ArchiveData.Disables[InType] == nil then return; end -- 使用默认的 self.EnableType = ArchiveData.Disables[InType]; self:SetSelected(self.EnableType); end end function WB_SelectDisableChild:GetDisableType() return self.DisableType; end -- 设置是否已选择 function WB_SelectDisableChild:SetSelected(InSelect) if InSelect then self.WidgetSwitcher_IsSelected:SetActiveWidgetIndex(1) self.WidgetSwitcher_BG:SetActiveWidgetIndex(1) else self.WidgetSwitcher_IsSelected:SetActiveWidgetIndex(0) self.WidgetSwitcher_BG:SetActiveWidgetIndex(0) end end function WB_SelectDisableChild:SetInitSelected(IsSelect) self.EnableType = IsSelect; self:SetSelected(self.EnableType); end -- function WB_SelectDisableChild:Tick(MyGeometry, InDeltaTime) -- end -- function WB_SelectDisableChild:Destruct() -- end return WB_SelectDisableChild