- Home /
How to change the intensity to go down over time and to go up after colliding with an object.
Hey,
I have been trying to make a fire which goes out over time but can be kept alive if wood is put in.
The script look like this.
#pragma strict
var addedWood : boolean = false;
var lightStepDown : float = 0.05;
var lightStepUp : float = 1;
function Update ()
{
light.intensity -= lightStepDown * Time.deltaTime;
}
function OnTriggerEnter (Col : Collider)
{
if(Col.gameObject.tag == "Wood")
{
Debug.Log("Wood added");
addedWood = true;
light.intensity += lightStepUp * Time.deltaTime;
yield WaitForSeconds(1);
Destroy(Col.gameObject);
addedWood = false;
}
}
The going out part is perfect. I can change the lightSetDown value to what ever I want and it will decrease over time until it reaches zero. But I can't get the lighting up part working. What am I doing wrong? I'm suppose to drop a Log in tagged "wood" and it is suppose to go up to 1 but it just doesn't.
What does "can't get the lighting up part working." Is the object hitting the collider? Is is finding wood? I see one problem. Your calculation on line 19 doesn't need 'Time.deltaTime' (i.e. the event is not one that should be scaled over a frame). With 'Time.deltaTime' you are only increasing your light intensity by 1/60 or so.
I did it! You were right about the Time.deltaTime. I just removed it and works perfectly!
The problem I have now is how do I stop intensity going more than 2? Would this work:
if(Col.gameObject.tag == "Wood" && light.intensity <= 2)
How about inserting between line 19 and 20:
light.intensity = $$anonymous$$athf.Clamp(Light.intensity, 0.0, 2.0);
Or you could rewrite line 19:
light.intensity = $$anonymous$$athf.Clamp(light.intensity + lightStepUp, 0.0, 2.0);
Answer by Rondu101 · Dec 20, 2021 at 04:11 AM
It looks to me like yr bringing the light down every frame in the update but when it gets a trigger it is going up so yr basicly fighting each other over control..I think you need to set a conditional (bool) that tells the fire not to LightDown...hope this helps!
Your answer
Follow this Question
Related Questions
Light Draining Script 1 Answer
light.intensity is obsolete 1 Answer
Adding lights and cameras to scenes with cSharp script 2 Answers
URP Point light range doesn't increase light range? 2 Answers
Flamethrower in 2D? 1 Answer