Okay im not entirely sure why this is, I am very new to unreal - But if I want to make several different actors (a cube with collision box) as I have done, why can they not be different colours? I made 3, and would like them all to be different colours, but as soon as I change one they all change?
Sorry for the basicness but can someone tell me what I am missing please?
If you set the blueprint to use a certain material all of those will have the same referenced material. If you want to have different colors for each blueprint you can either create constant material instances or dynamic material instances.
For constant material instances you would create a parameter for the color by right clicking on the color vector in the main material and choosing Convert to Parameter. Then in the content browser right click the material and choose Create Material Instance. In the new material instance you can tick the color checkbox (or whatever you named the parameter) and then select a new color, for example yellow and apply that to a certain blueprint in the world. These are constant so you set them in the editor and then they don’t change.
For dynamic material instances you create the parameter the same way. You don’t need to create a material instance, you can use the base material. In the blueprint’s construction script you can add the nodes Create Dynamic Material Instance and Set Vector Parameter Value and hook those up. Then create a variable to the left and click on the colored bar to set the type, search for color (linear color). Then drag it in the blueprint and GET (or Ctrl drag drop) and plug it in to the Value of the Set Vector Parameter Value node. Finally expose the variable by clicking the eye icon to the right of the variable name in the list to the left. After that you should be able to select different colors for your blueprint in the world by changing the color variable in the blueprint details panel.
Dynamic material instances can be changed during gameplay.