- Home /
How does this conditional evaluate? -- Repeating Background Script
Hi. I am following along with Unity's "Flappy Bird Tutorial", but I do not understand a line of the code in the repeating background script.
// Use this for initialization
void Start ()
{
groundCollider = GetComponent<BoxCollider2D> ();
groundHorizontalLength = groundCollider.size.x;
}
// Update is called once per frame
void Update ()
{
if (transform.position.x < -groundHorizontalLength)
{
RepositionBackground ();
}
}
// Repositions background
private void RepositionBackground()
{
Vector2 groundOffset = new Vector2 (groundHorizontalLength * 2f, 0);
transform.position = (Vector2)transform.position + groundOffset;
}
Mainly, I don't understand the conditional. Could someone explain it in simple terms? Thank you in advance.
Answer by TheSOULDev · Aug 20, 2017 at 03:50 PM
From what I understand, this script repositions the background if your character falls behind the ground collider. groundHorizontalLength
is the size of the collider that kills the player. If the player moves out of it in a way that if he fell down he wouldn't hit it and end the game, the background moves you twice the size of the collider forward. I don't know why it's groundHorizontalLength * 2f
instead of groundHorizontalLength
in the groundOffset, but maybe you understand.
The collider size times two is actually the collider's extents. $$anonymous$$aybe that's why.
Your answer
Follow this Question
Related Questions
Object doesn't move 2 Answers
Finding an objects position from one canvas to the other 1 Answer
Is my if statement changing my Euler angle value? 1 Answer
Tidying up IF statements with '<' '>' in them 1 Answer
Hazards not Working Properly 1 Answer