上篇文章介绍了AssetActionUtility之后,我们再来看另一种常用的EditorUtilityBlueprint——ActorActionUtility。
AssetActionUtility用于批量操作ContentBrowser中的资产,而ActorActionUtility的功能类似,它用于批量操作场景编辑器中的Actors。从它们的名字我们也可以看出功能的区别。
我们在编辑器中右键Assets,出现的是AssetActionUtility;我们在场景编辑器中右键Actors,出现的则是ActorActionUtility。ActorActionUtility的创建步骤和AssetActionUtility基本一样,只是在选择Class的阶段要选择ActorActionUtility。
至此,EditorUtilityBlueprint里面的常用Utility我们都比较清楚了,那么一个问题来了,它和我们之前介绍过的EditorUtilityWidget名字很像,功能也很像,都是主要通过GetSelectedAssets和GetSelectedLevelActors来完成一些批量操作,那么我们什么时候应该使用Widget,什么时候应该使用Blueprint呢?
就我个人理解,Widget更像是通用功能,比如我们在场景编辑器中选中各种类型的Actors,我们对它们进行整体的处理如平移缩放旋转等,它是类型无关的,而Blueprint更像是定制功能,我们只想对某些特定的Actors进行处理,只有选中这些Actor才有功能入口,选中别的则没有,那么就应当使用Blueprint。对于Asset的操作也是同理。