- Home /
Issues with changing light colour
If I have something like,
if (counter == 10.0F)
{
light.color = Color.blue;
}
But I want to change 'light.color' to a value that I've managed to find in the Inspector by dragging the selector around, how would I use the RGB values from this and apply them to the code? I've had a look at some documentation and answers and I can't find anything that will let me do this, it just seems to be 'Color.whatevercolour'. The RGB value that I want to use is '180/63/255'.
It seems like a really basic thing but I'm just having a bit of difficulty from it, I'd really, really appreciate it if anyone can help me do this.
Answer by AlucardJay · Apr 25, 2013 at 06:59 PM
The Color parameters are between 0 and 1 , not 0 and 255 =]
Each color component is a floating point value with a range from 0 to 1. :
http://docs.unity3d.com/Documentation/ScriptReference/Color.html
http://docs.unity3d.com/Documentation/ScriptReference/Color.Color.html
I'm assuming C# from your code snippet. If you already have a colour variable in the Inspector, can you not simply assign the variable to the light colour?
public Color myColour;
void SomeMethod()
{
if (counter == 10.0F)
{
light.color = myColour;
}
}
or using your chosen values :
void SomeMethod()
{
if (counter == 10.0F)
{
float r = 180.0f / 255.0f;
float g = 63.0f / 255.0f;
float b = 255.0f / 255.0f;
light.color = Color( r, g, b );
}
}
I did light.color = Red; but it says unknown identifier Red.
Answer by Lazy08 · Apr 25, 2013 at 06:51 PM
http://docs.unity3d.com/Documentation/ScriptReference/Color.html
C#:
if(counter == 10.0F)
{
Color prettyColor = new Color (0.706F, 0.247F, 1.0F);
light.color = prettyColor;
}
What you do is get your RGB value and divide it by 255. Store these values in a Color variable. Then set your light.color to the variable.