Download

Best way to get and sort list of components from actor

I have a bit of a dilemma that may be solved already by a function or something I’m not aware of.

Given an actor with 300 components,
Set the component(s) found in a data table to the appropriate value

I’m thinking I need to match a tag to the component name used in the data table. Or something to that effect.
however this limits functionality as you’ll have to remeber to set set a tag and change the struct if you modify things.

Is there a way to convert the component display name to a tag or data that is actually usable in the final published version, without also having to strip parts out like you would for tags?

So far I’m thinking that a bluetility script to create the matching tag name is the way to go. Basically force the manual process to be automated. However this kinda sucks still because it should be a rather common occurrence for something we do when making games… hence.

Is there a better way I’m not aware of?

What are the 300 components? I remember helping someone sort components that were piano keys, but they were made in blender and had a suffix name of _001, so that made it easy to add them to a sorted array of components.
But you want to have each component lookup a specified row in a data table?
You can set tags programmetically too, but how you’d know which component should have which tag value? And at that point, instead of doing it at runtime, may as well have it set up already in the editor.

Definitely has to be setup in editor.
What I want to do is get the values off the table row, read the column name, and apply the value to the component that has a tag that matches the column name.

Apparently in BP this is not possible for there is no access to the name of the column at all.

There is also no apparent way to loop the values of a brake pin.

The workaround for this are terrible…
I need to use an array of 300 units, or a Map so I can have it set with a name.

… 'tis what it is.

as far as the components, they were manually added in. they all have decent enough names, so GetObjectName works.

The problem now is the processing cost of this, because checking validity of a component 300 times is a lot of overhead.
It’s a necessity so it can take however long it needs and be hidden by a loading screen but realistically it’s just bad for performance all over.


It might take me 30 minutes or more just to type the default names into the struct… You can’t even create all 300 and set the names after, you have to go 1 by 1…