Mapz's Blog

可以递归的函数指针

UE5:小点点随记

这篇文章主要记录一些平时想到和看到的 UE Tips

RPC 实现调用 XXX_Implementation 和 XXX_Validate 的方式

其实是 UHT 里面自动生成的 execXXX 函数中调用 Validate 和 Implementation 的逻辑,所以 XXX_Implementation 不是 UFUNCTION 也很正常,因为真正的 UFUNCTION 是根据 RPC 宏自动生成的 execXXX,所以如果要魔改逻辑,只能改 UHT 源码了

CallInEditor

一个 UFUNCTION 宏中,如果加上宏参数

1
CallInEditor

那么会在编辑器的 Property 面板中生成一个同名按钮,点击后可以执行这个函数

同样的,如果是蓝图类,在 CustomEvent 节点的属性面板中也有一个 CallInEditor 的勾选框

效果是一样的

但是有一个限制,就是函数不能带参数,否则不会生成 Property 面板按钮

使用 ini 重新设置控制台变量 CVar 的值

在 DefaultEngine.ini 中,添加

1
2
[SystemSettings]
xxx.yyy = zzz

其中 xxx.yyy 是控制台变量的名称,zzz 为覆盖默认值

Map Check

Map Check 可以帮助你更好的检查地图中的 Actor 是否存在错误或者不适当的配置

执行主菜单的->Build->MapCheck 即可执行检查当前地图(UE5下)

1
2
3
4
5
/**
* Function that gets called from within Map_Check to allow this actor to check itself
* for any potential errors and register them with map check dialog.
*/
virtual void CheckForErrors();

在你自己的 Actor 派生类重写 CheckForErrors ,在其中添加检查逻辑即可

检查逻辑可以通过

1
FMessageLog("MapCheck")

来生成编辑器 Console 提示,其还可以 Add 各种 Token 来进行帮助跳转

其中 ActorToken 点击可跳转 Actor,ActionToken 点击可以执行一个自定义的命令,AssetNameToken 点击可跳转相关资源,等待