Module |
|
Header |
/Engine/Source/Runtime/GameplayTags/Classes/GameplayTagContainer.h |
Include |
#include "GameplayTagContainer.h" |
struct FGameplayTagQuery
An FGameplayTagQuery is a logical query that can be run against an FGameplayTagContainer. A query that succeeds is said to "match". Queries are logical expressions that can test the intersection properties of another tag container (all, any, or none), or the matching state of a set of sub-expressions (all, any, or none). This allows queries to be arbitrarily recursive and very expressive. For instance, if you wanted to test if a given tag container contained tags ((A && B) || (C)) && (!D), you would construct your query in the form ALL( ANY( ALL(A,B), ALL(C) ), NONE(D) )
You can expose the query structs to Blueprints and edit them with a custom editor, or you can construct them natively in code.
Example of how to build a query via code: FGameplayTagQuery Q; Q.BuildQuery( FGameplayTagQueryExpression() .AllTagsMatch() .AddTag(FGameplayTag::RequestGameplayTag))) .AddTag(FGameplayTag::RequestGameplayTag))) );
Queries are internally represented as a byte stream that is memory-efficient and can be evaluated quickly at runtime. Note: these have an extensive details and graph pin customization for editing, so there is no need to expose the internals to Blueprints.
Name | Description | |
---|---|---|
|
FGameplayTagQuery() |
|
|
FGameplayTagQuery ( |
|
|
FGameplayTagQuery ( |
Name | Description | ||
---|---|---|---|
|
Build ( |
Creates this query with the given root expression. |
|
|
BuildFromEditableQuery ( |
Creates this query based on the given EditableQuery object |
|
|
FGameplayTag... |
BuildQuery ( |
Static function to assemble and return a query. |
|
Clear() |
Resets this query to its default empty state. |
|
|
UEditableGam... |
CreateEditableQuery() |
Creates editable query object tree based on this query |
|
const FStrin... |
GetDescription() |
Returns description string. |
|
GetQueryExpr ( |
Builds a FGameplayTagQueryExpression from this query. |
|
|
IsEmpty() |
Returns true if this query is empty, false otherwise. |
|
|
FGameplayTag... |
MakeQuery_MatchAllTags ( |
|
|
FGameplayTag... |
MakeQuery_MatchAnyTags ( |
Shortcuts for easily creating common query types Creates a tag query that will match if there are any common tags between the given tags and the tags being queries against. |
|
FGameplayTag... |
MakeQuery_MatchNoTags ( |
|
|
FGameplayTag... |
MakeQuery_MatchTag ( |
|
|
Matches ( |
Returns true if the given tags match this query, or false otherwise. |
|
|
ReplaceTagFast ( |
Replaces existing tags with passed in tag. |
|
|
ReplaceTagsFast ( |
Replaces existing tags with passed in tags. |
Name | Description | ||
---|---|---|---|
|
FGameplayTag... |
operator= ( |
Assignment/Equality operators |
|
FGameplayTag... |
operator= ( |
Name |
Description |
---|---|
EmptyQuery |