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 日。