"buddies" multiplying, can't find what's wrong with my script

so I’m following this old tutorial: 4B. How to make a 2D Platformer - Tiling - Unity Tutorial - YouTube but my background just keeps multiplying all over the place, crashing Unity if I don’t stop the game fast enough. I’ve looked through the comments and made the changes that people there suggested but it’s an old video so i doubt I’ll get any answers if i ask there.

My script:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[RequireComponent(typeof(SpriteRenderer))]

public class Tiling : MonoBehaviour
{

    public int offsetX = 2;

    public bool hasARightBuddy = false;
    public bool hasALeftBuddy = false;

    public bool reverseScale = false;

    private float spriteWidth = 0f;
    private Camera cam;
    private Transform myTransform;

    void Awake()
    {

        cam = Camera.main;
        myTransform = transform;

    }
    // Use this for initialization
    void Start()
    {

        SpriteRenderer sRenderer = GetComponent<SpriteRenderer>();
        spriteWidth = sRenderer.sprite.bounds.size.x;

    }

    // Update is called once per frame
    void Update()
    {

        if (hasALeftBuddy == false || hasARightBuddy == false)
        {

            float camHorizontalExtend = cam.orthographicSize * Screen.width / Screen.height;

            float edgeVisiblePositionRight = (myTransform.position.x + spriteWidth / 2) - camHorizontalExtend;
            float edgeVisiblePositionLeft = (myTransform.position.x - spriteWidth / 2) + camHorizontalExtend;

            if (cam.transform.position.x >= edgeVisiblePositionRight - offsetX && hasARightBuddy == false)
            {

                MakeNewBuddy(1);
                hasARightBuddy = true;

            }
            else if (cam.transform.position.x <= edgeVisiblePositionLeft + offsetX && hasALeftBuddy == false) ;
        }

        MakeNewBuddy(-1);
        hasALeftBuddy = true;

    }

    void MakeNewBuddy(int rightOrLeft)
    {
        Vector3 newPosition = new Vector3(myTransform.position.x + myTransform.localScale.x * spriteWidth * rightOrLeft, myTransform.position.y, myTransform.position.z);
        Transform newBuddy = Instantiate(myTransform, newPosition, myTransform.rotation) as Transform;

        if (reverseScale == true)
        {

            newBuddy.localScale = new Vector3(newBuddy.localScale.x * -1, newBuddy.localScale.y, newBuddy.localScale.z);

        }

        newBuddy.parent = myTransform;
        if (rightOrLeft > 0)
        {

            newBuddy.GetComponent<Tiling>().hasALeftBuddy = true;

        }
        else
        {

            newBuddy.GetComponent<Tiling>().hasARightBuddy = true;

        }
    }

}

OK so I solved it. I didn’t ever open the “else if”, all i had to was:

            else if (cam.transform.position.x <= edgeVisiblePositionLeft + offsetX && hasALeftBuddy == false)
            {

                MakeNewBuddy(-1);
                hasALeftBuddy = true;

            }