digest 文件:比官网更新鲜的 API 词典
第 3 课学了模块路径,那有没有一本「本机版全量 API 词典」能随手翻?有——它叫 digest,每次构建都会自动刷新,新 API 往往它先有、官网后补。这一页把老手的查 API 习惯传给你。
一、digest 是什么:构建时送你的四本词典
每次在 UEFN 里构建 Verse 代码,项目中都会生成一组以 .digest.verse 结尾的文件。它们是机器生成的 API 清单:把你当前这套环境里全部可用的 Verse API——每个模块、每个类、每个函数——的完整签名连同注释,原样列成一份 Verse 源码格式的文档。把你当前这套环境里能用的 Verse API——每个模块、每个蓝图类、每个函数——的完整长相(也就是「签名」:有哪些输入引脚、返回什么)连同说明,原样列成一份文档。四本词典各管一摊:
| 文件 | 收录内容 |
|---|---|
Fortnite.digest.verse |
/Fortnite.com 域下的全部 API:creative_device、各种内置设备、角色…… |
Verse.digest.verse |
/Verse.org 域下的语言与运行时 API:Sleep、随机数、颜色…… |
UnrealEngine.digest.verse |
/UnrealEngine.com 域下的引擎侧 API:Diagnostics、SpatialMath、UI…… |
Assets.digest.verse |
你项目里自定义资产的反射清单 |
注意到了吗?词典的分册方式,正好就是第 3 课讲的三大域名式路径——digest 按模块路径组织,查到一个 API 的同时就能看到它属于哪个模块,顺手就知道文件顶部该补哪行 using。两课知识严丝合缝。
二、为什么说它比官网新鲜
网页版 API 文档由人来撰写和发布,更新永远慢半拍;digest 却是构建时从你本机安装的版本直接生成的,和你手上的 UEFN 严格同频。这带来一个实际差别:新设备、新函数上线时,常常是 digest 里已经有完整签名,而网页文档还没来得及写。所以老手遇到「这 API 官网查不到」的情况,第一反应不是刷新网页,而是打开 digest 搜一把。
另一个好处是准确性:digest 是机器生成的,签名不会抄错;而且它只列你当前版本真正可用的 API——不会像老教程那样,教你一个早就被移除的函数。第 3 课那句「不确定的 API 以 Verse API Reference 为准」,在实战中往往落地为「以 digest 为准」。
三、怎么用:Ctrl+点击,直达定义
最顺手的入口在 VS Code 里:按住 Ctrl 点击代码中的任意类名或函数名(比如 creative_device),编辑器会直接跳进 digest 中对应的定义处,签名、说明注释、所属模块一屏全见。也可以直接打开 digest 文件全文搜索——想找「所有跟 button 有关的东西」,搜一下比翻网页快得多。
using { /Fortnite.com/Devices }
# 按住 Ctrl 点击下面的 creative_device,
# 会直接跳进 Fortnite.digest.verse 里它的定义处
probe_device := class(creative_device):
OnBegin<override>()<suspends>:void =
Print("去 digest 里逛逛吧")
(读图翻译:这就是个最普通的设备——父类 creative_device,Event BeginPlay 里打一句 Print String;重点不在代码,而在把光标停到 creative_device 上按住 Ctrl 一点,就能跳进词典看它的完整定义。)
两条注意事项:第一,digest 是生成物——手改无效,下次构建就会被重新生成,别指望在里面改出什么新功能;第二,它是只读的参考资料,不是让你 using 的模块,该怎么导入还是按正常路径写。把「遇到不认识的 API 先翻 digest」养成肌肉记忆,你查 API 的速度会甩开只会搜网页的同学一大截。
你在 Fortnite.digest.verse 里手动改了一个函数的签名并保存,会发生什么?
出处与延伸
本文整理自社区教程与官方文档: