ISteamUGC::DownloadItem:下载或更新工坊项目
DownloadItem 用于请求 Steam 下载指定项目,或让已安装但需要更新的项目开始更新。适用于客户端和游戏服务器。本页面向 Steamworks 游戏和工具开发者,说明接口声明、参数、返回方式以及与工坊内容生命周期相关的注意事项。
函数声明
客户端通过初始化成功后的 SteamUGC() 接口访问;游戏服务器使用服务器上下文的 SteamGameServerUGC()。以下声明按本次核对的官方接口整理,编译时应以项目实际使用的 SDK 头文件为准。
bool DownloadItem( PublishedFileId_t nPublishedFileID, bool bHighPriority );
参数
| 参数 | 类型 | 方向与含义 |
|---|---|---|
nPublishedFileID |
PublishedFileId_t |
输入:目标工坊项目的 PublishedFileId_t。 |
bHighPriority |
bool |
输入:是否以高优先级安排下载;true 会暂停其他正在进行的 Steam 下载。 |
返回值与完成方式
返回 bool,true 表示请求成功启动;完成信息通过广播回调 DownloadItemResult_t 接收,不是 SteamAPICall_t 调用结果。回调中检查应用 ID、项目 ID 和 m_eResult。
调用规则与排查
当返回 true 时,应等待对应下载结果后才调用 GetItemInstallInfo 或访问该项目的磁盘内容。高优先级会暂停其他进行中的 Steam 下载;未订阅项目可能只在临时缓存中。项目 ID 无效或用户未登录时会返回 false。
使用场景
例如,玩家进入一张需要工坊地图的多人房间时,客户端先检查地图状态。如果项目缺失或需要更新,启动下载并等待对应结果,成功后再读取安装信息和验证文件;在等待期间向玩家显示进度。服务器若下载未订阅内容,也要考虑缓存可能被清理。
相关接口
GetItemState、GetItemInstallInfo、GetItemDownloadInfo。回调、状态与类型参考整理了相关结构体和枚举,适合在处理结果时对照使用。
站内字段参考
资料依据:Steamworks ISteamUGC:DownloadItem。资料核对日期:2026 年 11 月 4 日。