How do Gameplay Tags work?
I am trying to use GamePlay Tags but am running into an issue. Previously using the system before it was officially supported by the engine I could fire a ray at an actor and ask whether it has a certain gameplay tag to identify the actor without casting.
Now, however I have to cast to the class that has the tags and get the tag container and then ask whether it has the tag. Why has this changed? I'm not sure how to add Gameplay Tags to AActor in C++ so I can get any tags that any actor has without casting.
I have a feeling that I may be missing some important information about how the tag system works. It was a lot easier before and I don't understand why it has been made more complex.
asked Mar 22 '17 at 11:04 PM in Blueprint Scripting
Hmm, could you really ask actors for gameplay tags before? I think what you could do was ask whether they have a FName as tag, and that functionality still exists.
I've heard in one of the streams that Epic wants to add gameplay tag support to actors, but that there are still some technical issues they are working on. Maybe somebody from Epic can confirm whether my recollection is correct, but my understanding was that eventually actors will implement something like
But since I use gameplay tags fairly extensively, I can hopefully provide some information why they are pretty neat. Gameplay tags are rather similar to FNames in that they allow you to easily name things, however they are different in two important ways:
Let's, as an example, say you have quests that take may take place in different regions of your map, but some quests are not bound to any particular region. Then you can easily define a set of gameplay tags
In your program you can easily special case some gameplay tags, such as
Granted, gameplay tags offer very little that you could not have achieved with FNames, some definitions, and some property pane specializations. But they are the proverbial 80% solution for many problems that you can now solve without any custom code.
Regarding casting and getting the tag container from somewhere: Right now, if you are using gameplay tags it's probably best to define your own actor subclasses that implement
Follow this question
Once you sign in you will be able to subscribe for any updates here