Assigning property to created component mesh
I am trying to create an array of clickable boxes that will be a base for let's call it chessboard. I've managed to create an array of objects like shown in pic and the blueprint itself . What i did later was to create a function that would print the name of the component of "board" blueprint that was hit by left mouse button. I've reached this , which does not satissfy me as i need to use the name or the index of component later to be able to f.example change material of one particular component. So my question is what can i do to be able to assign a value as a property of each box to know which of them is number 1 and which is 400 and so on and so on, and it would be lovely if the number would correspond to the sequence the boxes were created. PS the yellowish color was assigned during creation of static mesh for all boxes created under loop index from 161-220, and i would love to save this index in some kind of an array or any other kind of variables/tags etc. to be able to use it later. (I still mean the way that i the index is assigned to component, so if i say component with index 180 changes its material to blue for exmaple.) PS' Plz help
The way I would solve this is the following:
First, create a new blueprint called Box (or something similar) and populate it with all the variables that you want - index, color, additional components, whatever.
Second, create another blueprint called BoxCoordinator, which would control the spawning, destroying and general bulk actions on Boxes. Additionally it would also hold the index for all Boxes (array of Box references), just for convenience.
Next, to make it more interesting, you could make an interface that would hold all the most used functions for accessing and changing variables from the BoxCoordinator on the Boxes itself.
Examples of such functions would be:
A function that changes the color of a Box with a specific index.
A function that gets all the Boxes that are in a specific color.
A function that gets all the Boxes in the n-th row.
A function that spawns a new Box row.
A function that destroys the n-th column and fills up the empty space with boxes from the n+1-th+ columns
Etc. you get the point.
Furthermore, as the next step, It would also be nice if you properly split the logic between the Box and the BoxCoordinator. What I mean by this is to have all the Box-related functions on the Box blueprint and to have all the functions that perform bulk actions on the BoxCoordinator. For example, you would have a function named ChangeColor on the Box blueprint and ChangeRowColor on the BoxCoordinator blueprint that would iteratively call ChangeColor on all the boxes of the n-th row.
I hope this helps.
answered Oct 22 '17 at 06:28 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here