ISteamUGC::GetItemDownloadInfo:读取下载进度

ISteamUGC::GetItemDownloadInfo:读取下载进度

GetItemDownloadInfo 用于读取需要更新的工坊项目的下载字节数,供游戏内进度显示使用。本页面向 Steamworks 游戏和工具开发者,说明接口声明、参数、返回方式以及与工坊内容生命周期相关的注意事项。

工坊内容获取与加载流程

函数声明

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

bool GetItemDownloadInfo( PublishedFileId_t nPublishedFileID, uint64 *punBytesDownloaded, uint64 *punBytesTotal );

参数

参数 类型 方向与含义
nPublishedFileID PublishedFileId_t 输入:目标工坊项目的 PublishedFileId_t。
punBytesDownloaded uint64 * 输出:指向已下载字节数的可写变量。
punBytesTotal uint64 * 输出:指向总字节数的可写变量;下载开始后才有效。

返回值与完成方式

返回 bool:true 表示可以取得下载信息,false 表示当前没有可用信息。两个输出参数分别接收已下载字节数和总字节数。

调用规则与排查

先通过 GetItemState 判断项目是否需要更新。总字节数只在下载开始后有效,因此启动前不要据此计算百分比,也应避免分母为零。调用者需要提供可写的 uint64 变量并检查返回值。

使用场景

例如,游戏显示某个待更新项目的进度时,可在下载开始后读取两个字节数。总数有效且大于零时再计算比例;无可用信息时显示等待状态,避免把零显示成下载失败。最终是否能加载内容仍需等待下载结果并检查安装状态。

相关接口

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

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