- Home /
Prefab's Script affecting all the Prefab
Hello everyone, i am confused on the static variable that im using, i just can't answer my problem clearly.
I am doing a Lumberjack game, All of the trees are just prefab with a script, then every time i cut down one tree, all of the tree will fall too.
here's the first method, i think the Global variable that im using affects all the scripts in the tree's prefab. the problem here is when i cut down one tree, all of the tree will fall down.
this is the script in my Player.
static var CutTree = false;
function Update () { var hit : RaycastHit;
if(Physics.Raycast(transform.position, transform.forward, hit, 10))
{
if(hit.collider.gameObject.name == "PalmTree")
{
print("Tree on Range ");
if (Input.GetButton("Fire1"))
{
CutTree = true;
}
}
}
}
then this one is for my Prefab Palm Trees
var fallenBOOL = false; var treelife = 100;
function Update () {
if(Tree.CutTree == true) {
print("Treelife" + treelife);
if(!fallenBOOL)
{
treelife = treelife - 1;
print("Treelife" + treelife);
if(treelife == 1)
{
animation.Play("PalmFall");
fallenBOOL = true;
}
}
if(fallenBOOL)
{
print("Tree is Dead!! U can chop chop it now " + treelife);
}
}
}
I think that everytime that the Variable CutTree is set to True, then all trees will Set to true that will cause all of them to fall, is there a way to prevent that?
Answer by Eric5h5 · Apr 05, 2010 at 01:36 AM
Don't use static variables unless there will be only one of that variable in the entire game. So, make it a regular non-static variable.
Im using 2 scripts, is there a way for them to communicate without using Global? because when i merged the script into One all of the tree will share the same life.