- Home /
problem with raycasting and functions
i made a simple code attached to a bullet which will determine what will the bullet do with each object collided (tagged as t1_1 and t2_2). but it doesn't work. the line variable tend not to update when i add one inside the function:
var hit1:RaycastHit; var hit2:RaycastHit; var question=1; var line=1;
function Update() { print(line); if(question==1) {
if(line==1) {
t1_1();
}
if(line==2) {
t1_2();
}
}
}
function t1_1() { if(Physics.Raycast(transform.position,transform.forward,hit1,5)) { if(hit1.collider.gameObject.tag=="t1_1") { line=line+1; Destroy(gameObject.FindWithTag("t1_1")); Destroy(gameObject.FindWithTag("bullet"));
}
} }
function t1_2() { if(Physics.Raycast(transform.position,transform.forward,hit2,5)) { if(hit2.collider.gameObject.tag=="t1_2") { Destroy(gameObject.FindWithTag("t1_2")); Destroy(gameObject.FindWithTag("bullet")); line=3; print(line); } } }
what can be the problem why t1_2 function doesn't work?even if i added line=line+1 in t1_1 function which will make line=2 and execute t1_2 function. It doesn't work for me Hope you can help me with this.
Answer by Bunny83 · Feb 24, 2011 at 01:36 AM
You destroy the bullet when it hits something. Therefore the bullet object will be deleted and your line variable is on that object. Every bullet will have an own line variable which is initialized with 1.
I don't really understand what you want to achieve. But if line should be shared between multiple bullets make it static. Static variabled can't be viewed in the inspector because they don't belong to the class instance but to the class itself.
static var line = 1;
Your answer
Follow this Question
Related Questions
How do I make an Android touch main menu? 3 Answers
Raycast is being unreliable 1 Answer
Raycast doesn't update 1 Answer
How to call and run a function from another script on a transform. 0 Answers
Unity c# Raycast axis stuck on one axis 0 Answers