- Home /
What is wrong with my torch script
Hey I got this C# script for a torch but it wouldn't work, what it is suppose to do is, when I press the Q button the torch object's (Spotlight) intensity should go to 4 and when I press it again the intensity should go to 0.
here is the script
public bool TorchOn = false;
public GameObject TorchLight;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
if (TorchOn == false && Input.GetKey ("q"))
{
TorchLight.light.intensity = 4.0f;
TorchOn = true;
}
if (TorchOn == true && Input.GetKey ("q"))
{
TorchLight.light.intensity = 0.0f;
TorchOn = false;
}
}
that is the script if you guys/girls know what I did wrong please help me :D
Please do not post non-solutions as "answers". This is a Q&A site. Not a forum.
Also, I noticed that you never accepted an answer given by the community. The people who answered your question probably worked hard on it. I'm sure at least one of the answers given to your many questions is correct. It's very rude and not kind at all. -_-
You can accept an answer by clicking the green check mark next to it.
Answer by Meater6 · Feb 10, 2013 at 10:07 AM
Your using Input.GetKey. Every frame your holding down Q, the light is flashing on, and then off, in the same frame. Structure your script better and use Input.GetKeyDown instead. It should look more like this:
if(Input.GetKeyDown("q")) {
if(torchOn) {
torchLight.light.intensity = 4.0f;
torchOn = true;
}
else {
torchLight.light.intensity = 0.0f;
torchOn = false;
}
}
NOTE: I'm not a C# person. I prefer javascript. But I do know how to read it. If it doesn't work, it may be a syntax thing.
If your new to scripting, check out this list of tutorials:
I hope this is what your looking for.
Your answer
Follow this Question
Related Questions
Distribute terrain in zones 3 Answers
Multiple Cars not working 1 Answer
A node in a childnode? 1 Answer
Need help working with NGUI progress bar 2 Answers