- Home /
Bool not returning correct value from getCompoent
I'm trying to pass a value from a player script to the camera script, to see if the player had ducked to move the camera. I've tested the bool in the player script and it returned the correct value but when I pass the bool to the camera script it constantly returns false.
void PlayerDuck()
{
if(headpos.y < duckThreshold)
{
duck = true;
//Debug.LogError("ducking ");
}
else
{
duck = false;
//Debug.LogError("not ducking ");
}
but in the cam script it keeps returning false in the update method after i init the variable in the start method.
_ducking = GameObject.Find("player").GetComponent<Duck>().duck;
and the update method constantly shows it as false
void Update () {
Debug.LogError(_ducking);
}
Answer by Lo0NuhtiK · Feb 01, 2012 at 09:40 AM
If you're calling this "_ducking = GameObject.Find("player").GetComponent().duck;" in start, then you're only getting what the variable is AT Start....
cache the script, then get the variable in update and see how that goes.
void Start(){ _ducking = GameObject.Find("player").GetComponent<Duck>() ; }
void Update(){ Debug.Log(_ducking.duck) ; }
Just a quick guess, anyway... never did it like that before (setting the variable with getcomponent at start... I always do it this way and it works)
I tried what you suggested and it didn't work, it wont recongnise the _ducking.duck because it cant see the .duck being pulled from the Duck class.
I just tried it after seeing your comment, and it works perfectly fine. Did you change your _ducking variable declaration to suit the other changes?
NameOfDuckScript _ducking ;
Hmm thanks for the support. I changed that and now i'm just getting a null refrance exception form the debug statement. saying its not linked to an object. Even though when I hover over it in mono it shows me it as being a bool???? sorry the exception error is co$$anonymous$$g from _ducking = GameObject.Find("player").GetComponent();
Oh... didn't see the edit you made to your comment. So, you got it to work now then?
Unfortunatly no, I'm a uni student and got a demo in 90 $$anonymous$$s wanna get the ducking working by then. just gonna plug away at it.