ISteamUGC::GetSubscribedItems:获取订阅项目 ID 列表

ISteamUGC::GetSubscribedItems:获取订阅项目 ID 列表

GetSubscribedItems 用于将当前用户在本应用中的订阅项目 ID 写入调用者提供的数组,用于构建 Mod 列表。本页面向 Steamworks 游戏和工具开发者,说明接口声明、参数、返回方式以及与工坊内容生命周期相关的注意事项。

工坊内容获取与加载流程

函数声明

客户端通过初始化成功后的 SteamUGC() 接口访问;游戏服务器使用服务器上下文的 SteamGameServerUGC()。以下声明按本次核对的官方接口整理,编译时应以项目实际使用的 SDK 头文件为准。

uint32 GetSubscribedItems( PublishedFileId_t*pvecPublishedFileID, uint32 cMaxEntries, bool bIncludeLocallyDisabled = false );

参数

参数 类型 方向与含义
pvecPublishedFileID PublishedFileId_t* 输出:接收订阅项目 ID 的数组。
cMaxEntries uint32 输入:输出数组可容纳的最大项目数,单位为元素。
bIncludeLocallyDisabled bool 输入:是否包含本地禁用项目;默认 false。

返回值与完成方式

返回 uint32,表示实际写入的 ID 数量;游戏服务器调用返回 0。默认忽略本地禁用项目。

读取返回值后,应按其实际含义处理计数或位标志;涉及输出数组时只遍历实际写入的元素,不要把缓冲区容量误当作结果数量。

调用规则与排查

可先用 GetNumSubscribedItems 取得容量,并为数组分配足够元素;两次调用的禁用项目选项应一致。项目默认按订阅顺序排列,用户或应用可能调整顺序。订阅并不保证文件已经安装。

使用场景

例如,构建游戏内 Mod 管理列表时,先以是否包含禁用项为条件获取数量,再分配对应容量并取得项目 ID。读取返回的实际数量后逐项查询状态,区分已安装、待下载和需要更新。若需要在管理界面恢复禁用项,两次枚举都要包含禁用项。

相关接口

GetNumSubscribedItems、SetItemsDisabledLocally、SetSubscriptionsLoadOrder。回调、状态与类型参考整理了相关结构体和枚举,适合在处理结果时对照使用。

资料依据:Steamworks ISteamUGC:GetSubscribedItems。资料核对日期:2026 年 11 月 4 日。