- Home /
how would i cause the function to wait until it stops to function again?
I am trying to make a selecting script, but when i hold down mouse0 it cause the function to run continually, how would i cause it to only run once then wait till its done to run again?
this is what i have
var hit : RaycastHit;
var X = 0;
var Been = 0;
var hitName;
function Update () {
var ray : Ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width/2,Screen.height/2,0));
var Text = GetComponent(GUIText);
if (Physics.Raycast(ray,hit, 2)) {
if (Input.GetKey(KeyCode.Mouse0)) {
Debug.Log("You hit " + hit.collider.gameObject.tag);
hitName = GameObject.Find(hit.collider.gameObject.name);
if (hit.collider.gameObject.tag == "Tree") {
Text.text = "You hit tree!";
hitName.GetComponent(tree).use();
} else if (hit.collider.gameObject.tag == "Rock") {
Text.text = "You hit rock!";
} else if (hit.collider.gameObject.tag == "Ground") {
Text.text = "You hit ground!";
} else if (hit.collider.gameObject.tag == "Water") {
Text.text = "You hit water!";
hitName.GetComponent(water).use();
}
}
}
if (Physics.Raycast(ray,hit,50)) {
}
}
function StartOffTimer(Var,vartime) {
if (Been == 0) {
if (Var == 0) {
Var = vartime;
Been = 1;
}
}
if (Var > 0) {
Var = Var - 1;
}
if (Been == 1) {
}
}
Answer by DaveA · Jul 28, 2011 at 10:41 PM
Use GetKeyDown instead.
If you only want to see if they hit something when a key is hit, look for the key down first, then do the raycast, because raycasting is an 'expensive' operation. Don't do them if you don't have to.
Also, don't use Var as the name of a var, it will get you confused and cause undue trouble.
Also, don't call GetComponent if you don't need to. And try to call them in Start functions, where you can save the reference in a variable for use in Update and OnGUI.
Your answer
Follow this Question
Related Questions
Why is my "yield" statement stopping my script? 1 Answer
How to properly use Yield for a coroutine? 3 Answers
Yield And Return 2 Answers
Access a function from one script in another? 3 Answers
How to reference another script and call a function in C# ? 2 Answers