UE 多数静态函数库需要填入参数 WorldContextObject,该参数为世界上下文,通常需要从该参数中获取当前 world,从而函数内部可以对对应 world 进行实现。
UObject 类型调用相关函数时,节点需要手动填入对应参数,如:
AActor 和 UActorComponent 类型则不需要填入,如:
该类型函数中含有如下宏:
在 UE 文档中搜索 World 相关条目,有如下两个条目:
可知该宏指向的参数,会隐式传入 UObject 中的 GetWorld 函数返回的值。
查看 UObject 的 GetWorld 实现,使用了一个 bool 变量检测子类是否重写了该函数,注释可知 UObject 类型对象本身的 GetWorld 实现不可靠,需要重写该函数。
继承 UObject 类型,重写其中的 GetWorld 函数之后,其蓝图子类也不需要填入该参数。