How to make prefab have color of the character?
The short story is that I'm making a 3rd person shooter. I've managed to make my characters be of a completely random color every time I hit the play button by using a script that works with a skinned mesh renderer.
However, the bullets they fire (both enemies and character) are a prefab that I have made. What I want is for the prefab to have the color of the character that fires it.
Is that even possible? If yes, how? Is there a simple script that you could give me for this ?
Answer by Jessespike · Feb 02, 2016 at 09:50 PM
You can access variables in a script with GetComponent. Make a script for your bullet and assign the color by accessing the color in the script that randomizes your players color.
Color bulletColor = GetComponent<MyRandomColorOnSpawnScript>().color;
pseudo code, change it to fit your project.
Read: GetComponent tutorial
I can't make it work. I've followed the tutorial and tried everything. BTW, the characters are using a skinned mesh renderer to render the colors and the prefab does have such a component. Does it have to in order to work? Other pertinent info might be that the same script is used both in the player and the enemies which are standard third person characters offered by unity attached to their Ethan Body object. I have written this script: using UnityEngine; using System.Collections;
public class PrefabColor : $$anonymous$$onoBehaviour {
public GameObject ethanBody;
private ColorChanger anotherScript;
void Awake ()
{
Color prefabColor = GetComponent<ColorChanger>().color;
}
}
But I get the error ColorChanger' does not contain a definition for
color' and no extension method color' of type
ColorChanger' could be found (are you missing a using directive or an assembly reference?). I'm a noob. Please tell me how to fix it. Thanks!
Your answer
![](https://koobas.hobune.stream/wayback/20220612062632im_/https://answers.unity.com/themes/thub/images/avi.jpg)