UE4中将动作限制为特定类别就需要执行脚本操作,下面为大家了解在UE4中将动作限制为特定类别的案例步骤。


将动作限制为特定类别


例如,你创建了一个脚本动作来更改选定角色上的材质。但你希望仅在用户右键单击“静态网格物体”时才显示该动作,而在用户右键单击“Light Actor”或“蓝图”时不显示该动作。


该AssetActionUtility和ActorAssetUtility基类都提供一个内置命名的功能GetSupportedClass。该函数确定需要选择的对象的类别,以使您的Blueprint类中的“脚本操作”出现在上下文菜单中。每次用户右键单击一组Assets或Actor时,都会调用此函数以获取AssetActionUtility或ActorAssetUtility类支持的类类型。如果返回类类型,则将该返回值与用户当前选择的资产或参与者集进行比较。如果这些资产或参与者中至少有一个具有与GetSupportedClass返回的类相匹配的类,然后脚本操作将出现在上下文菜单中。默认情况下,GetSupportedClass函数不返回任何内容。这样,无论选择的资产或参与者的类别如何,所有脚本操作都将显示。


如果要更改此默认行为,则可以在类中重写GetSupportedClass函数以返回特定类型:


UE4如何将动作限制为特定类别


例如,ActorAssetUtility中的此实现返回StaticMeshActor类:


UE4如何将动作限制为特定类别


当我们在打开上下文菜单时至少选择了一个静态网格物体Actor时,此类中的脚本操作将显示在上下文菜单中:


UE4如何将动作限制为特定类别


但是,当用户仅选择了其他类型的Actor时,脚本操作不会出现:


UE4如何将动作限制为特定类别


如果选择了多个Assets或Actor,则该行为是允许的:只要所选项目中的至少一项与GetSupportedClass返回的类相匹配,“脚本操作”就会显示在上下文菜单中。即使你重写GetSupportedClass来限制操作处理类别,也不能保证在操作运行时仅选择该类的实例。


动态输入


可以将脚本操作设置为要求调用它们的用户提供信息。如果将一个或多个输入添加到函数输入节点或“自定义事件”节点,则每次在编辑器中运行“脚本操作”时,系统都会提示我们提供该输入。每当脚本需要一些额外的信息(每次调用该操作可能有所不同)时,此功能就很有用。


此函数具有三个输入:字符串,Actor对象引用和Material对象引用:


UE4如何将动作限制为特定类别


当运行此功能的脚本操作时,编辑器会弹出一个小窗口供您设置以下输入值:


UE4如何将动作限制为特定类别


编辑器将验证每个输入是否与假定的值类型相匹配。但它不能保证输入中将完全有值,或者这些值在任何特定上下文中都有意义。脚本应处理未指定的输入值并验证用户确实提供的输入值。


UE4中脚本操作的知识是需要我们了解的,希望上面UE4中将动作限制为特定类别的方法步骤能够帮到你。

,Unreal Engine技巧,Unreal Engine教程