在UE中我们往往需要执行一些编辑器下的异步任务,例如批量生成AO贴图、批量合并静态模型等,又不想阻碍主线程,因此可以使用Editor Utility Tasks直接创建UE编辑器下的异步任务。
如果你不太了解UE编辑器工具,可以参考这篇文章:
https://blog.csdn.net/grayrail/article/details/131309762
本文参考自Unreal官方教程:https://dev.epicgames.com/community/learning/tutorials/0lxq/unreal-engine-editor-utility-tasks
该工具最终效果如下:
1.创建EditorUtilityTask
首先在内容浏览器(ContentBrowser)中右键,创建EditorUtilityBlueprint:
创建类别选择Editor Utility Tasks编辑器蓝图类:
2.编写Task蓝图逻辑
实现两个蓝图类事件:BeginExecution, CancelRequested,分别对应任务的启用和取消:
在取消事件处写入了变量CancelPending,在执行结束时会读取这个变量判断是否已经被中途取消。
3.在编辑器UI中调用该Task
调用该Task使用EditorUtilitySubSystem中的节点Register and Execute Task:
最后运行该编辑器UI点击按钮测试即可。