Problem with a parralaxing script in a brackeys tutorial

I was taking the “Bullet Trail” (

) and I messed up the code somehow, so I took a break from it for a week and went back to it. I deleted the changes I had made to the weapon script, and tried to play the game, and while it worked the mountains in the background wirred all over the place extremely fast. I got the error:
NullReferenceException: Object reference not set to an instance of an object
Parallaxing.Update () (at Assets/Parallaxing.cs:40)

I had never seen a problem with the parralaxing before, and apparently it had something to do with both that script and the camerafollow2d script. Can anyone help? Here the the scripts:

Parralaxing:

using UnityEngine;
using System.Collections;

public class Parallaxing : MonoBehaviour {

public Transform[ ] backgrounds; // Array (list) of all the back- and foregrounds to be parallaxed
private float[ ] parallaxScales; // The proportion of the camera’s movement to move the backgrounds by
public float smoothing = 1f; // How smooth the parallax is going to be. Make sure to set this above 0

private Transform cam; // reference to the main cameras transform
private Vector3 previousCamPos; // the position of the camera in the previous frame

// Is called before Start(). Great for references.
void Awake () {
// set up camera the reference
cam = Camera.main.transform;
}

// Use this for initialization
void Start () {
// The previous frame had the current frame’s camera position
previousCamPos = cam.position;

// asigning coresponding parallaxScales
parallaxScales = new float[backgrounds.Length];
for (int i = 0; i < backgrounds.Length; i++) {
parallaxScales = backgrounds_.position.z*-1;
}
}
// Update is called once per frame
void Update () {
// for each background
for (int i = 0; i < backgrounds.Length; i++) {
// the parallax is the opposite of the camera movement because the previous frame multiplied by the scale
float parallax = (previousCamPos.x – cam.position.x) * parallaxScales*;*
// set a target x position which is the current position plus the parallax
float backgroundTargetPosX = backgrounds*.position.x + parallax;*
// create a target position which is the background’s current position with it’s target x position
Vector3 backgroundTargetPos = new Vector3 (backgroundTargetPosX, backgrounds.position.y, backgrounds*.position.z);*
// fade between current position and the target position using lerp
backgrounds.position = Vector3.Lerp (backgrounds.position, backgroundTargetPos, smoothing * Time.deltaTime);
}
// set the previousCamPos to the camera’s position at the end of the frame
previousCamPos = cam.position;
}
}
And the camerafollow2d script:
using UnityEngine;
using System.Collections;
public class Camera2DFollow : MonoBehaviour {
public Transform target;
public float damping = 1;
public float lookAheadFactor = 3;
public float lookAheadReturnSpeed = 0.5f;
public float lookAheadMoveThreshold = 0.1f;
float offsetZ;
Vector3 lastTargetPosition;
Vector3 currentVelocity;
Vector3 lookAheadPos;
// Use this for initialization
void Start () {
lastTargetPosition = target.position;
offsetZ = (transform.position – target.position).z;
transform.parent = null;
}
// Update is called once per frame
void Update () {
// only update lookahead pos if accelerating or changed direction
float xMoveDelta = (target.position – lastTargetPosition).x;
bool updateLookAheadTarget = Mathf.Abs(xMoveDelta) > lookAheadMoveThreshold;
if (updateLookAheadTarget) {
lookAheadPos = lookAheadFactor * Vector3.right * Mathf.Sign(xMoveDelta);
} else {
lookAheadPos = Vector3.MoveTowards(lookAheadPos, Vector3.zero, Time.deltaTime * lookAheadReturnSpeed);
}
Vector3 aheadTargetPos = target.position + lookAheadPos + Vector3.forward * offsetZ;
Vector3 newPos = Vector3.SmoothDamp(transform.position, aheadTargetPos, ref currentVelocity, damping);
transform.position = newPos;
lastTargetPosition = target.position;
}
}_

cam = Camera.main.transform;

may be something wrong with name or tag of your camera. Try set tag for camera MainCamera.

That didn’t seem to do much… Here are some errors that popped up if that helps:
NullReferenceException: Object reference not set to an instance of an object
Parallaxing.Update () (at Assets/Parallaxing.cs:40)