- Home /
How can I take a variable from another script and then apply it to a newly insantiated prefab?
Hello. I watched several yt tutorails but none of them really helped me/was very confusing so i couldnt understand anything. Thats my code for now:
int bulletDamage;
PlayerController playercontroller;
public void Awake()
{
playercontroller = playercontroller.GetComponent<PlayerController>();
}
void Update () {
playercontroller.damage = bulletDamage;
Debug.Log(bulletDamage);
}
From that script i get error: Object reference is not set to an instance of object. The problem is i cannot assign my Player Controller scirpt to playercontroller field in inspector
Answer by zsradu · Nov 17, 2018 at 09:14 PM
I think the line you are looking for, if playercontroller is from another script, is playercontroller=GameObject.Find("Name_of_the_object_with_the_referenced_script").GetComponent().playercontroller;
I dont think that will work, becouse i am working with prefabs so i think i cant find them by name. Also I want to modify this variable on the run. Correct me if i am wrong
Answer by Somebody0 · Nov 17, 2018 at 10:15 PM
You mean something like this?
Script1
public int int_Example;
Script2
public Script1 S;
void Example() {
S.int_Example = S.int_Example + 1;
}
If you want to do it with prefab, you have to do it "script" (see: https://answers.unity.com/questions/756713/destroy-an-instantce-of-a-prefab-object.html (later it can be prefab problem as in this thread, so I recommend doing just "script")) and replace it instead of int.