- Home /
Read boolean from parent's script
I shouldn't be asking this, because accessing public variables from parent script should not be THIS difficult. I could not find a single crystal clear answer on what I'm suppose to do.
For my case, when the player touches a specific surface, a boolean in the parent script named "flip" is set to true (I've done this part already). The camera of the player is suppose to check if "flip" is set to true, and set rotation to 180 degrees on the z-axis if so.
Could you paste your code on how you touch a specific surface :) So that we can fit it to your code :)
Answer by Vincent1236 · Feb 20, 2018 at 11:40 AM
The easiest way to do this is by adding a public variable (of the same type as the script in your parent) to the script on the camera. Something like this:
public PlayerController playerController;
void Update ()
{
if (playerController.flip)
transform.localEulerAngles = new Vector3(0, 0, 180);
else
transform.localEulerAngles = new Vector3(0, 0, 0);
}
Where PlayerController should be the name of the script that has the public flip variable. Then simply in the editor drag it in.
If you do not want to drag it in, use GetComponentInParent() in the start method to get a reference to it on game startup.
Answer by Positive7 · Feb 20, 2018 at 03:56 AM
Assuming your parent script looks something like this :
public ParentScript : Monobehaviour {
public bool flip;
//...
}
Then in child script :
private ParentScript parentScript; // Or make it public and assign it in Inspector
private void Start()
{
parentScript = FindObjectOfType(typeof(ParentScript)) as ParentScript; //If assigned in inspector delete this
//or
parentScript = transform.parent.GetComponent<ParentScript>(); //If assigned in inspector delete this
}
private void Update()
{
if (parentScript.Flip)
{
//DoSomething
}
else
{
//DoSomeething else
}
}
Or it could be done with static bool as well. There could be more efficient way if you would provide some code.
Your answer
Follow this Question
Related Questions
Can I make variables visible to other scripts without making them visible in the Inspector? 1 Answer
Access and Change variables from other Scripts? 2 Answers
Strange persistent variable duplication 0 Answers
How to make an if command check a bool (or any other variable) only if it has changed 1 Answer
SOLVED - Accessing a C# script value from another GameObject's JavaScript 2 Answers