- Home /
smoothly make light brigther
im having trouble making a flashlight slowly get brighter when it is turned on. this is where i have got to. bear with me im not great at coding. thank you
var lightglide : float = 10;
function Update () {
if (Input.GetKeyDown("e")){
if (light.enabled == true)
light.enabled = false;
else
light.enabled = true;
light.intensity = lightglide * Time.deltaTime;
}
}
Answer by emalb · Dec 17, 2013 at 02:31 PM
It looks like you're adjusting the light's intensity inside the if statement that checks for 'e' being pressed. Maybe what you want is to just toggle whether or not the light is enabled in that if statement. Then you could add another if statement after it that checks whether the light is enabled or not and increases or decreases the intensity accordingly.
For example:
function Update()
{
if (Input.GetKeyDown("e"))
{
if (light.enabled == true)
light.enabled = false;
else
light.enabled = true;
}
if (light.enabled)
light.intensity = light.intensity + lightglide * Time.deltaTime;
else
light.intensity = light.intensity - lightglide * Time.deltaTime;
light.intensity = Mathf.Clamp(light.intensity, 0f, maximumIntensity)
}
This way, the light's intensity will blend upwards or downwards depending on whether or not the light is turned on. The use of the Clamp function forces the light's intensity to be between 0 and maximumIntensity. I'm leaving it up to you to work out what the maximum intensity should be. You can find this information in the Unity reference documentation by searching for 'light' and scrolling down to the list of members or by searching for 'light intensity' directly.
If you can get the code working like this then you may want to try making the light intensity vary in a more satisfying way by using lerp to adjust it, instead of just adding or subtracting each frame.
Additionally, the way we toggle whether the light is on or off is fairly clear when written as above, but once you're happy with that you might prefer to do it this way:
if (Input.GetKeyDown("e"))
{
light.enabled = !light.enabled;
}
Since light.enabled is a boolean variable, this will always change it to the opposite, so when it's true it will be changed to false and vice versa.
Your answer
![](https://koobas.hobune.stream/wayback/20220613124341im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
lightmapping 1 model in different scenes 1 Answer
Issue with realtime shadows (receive shadows) 1 Answer
Low shadow quality from distance light 2 Answers
Shadow not adjacent to the object 0 Answers
Negative light no longer possible? 2 Answers