Object reference not set to an instance of an object

Here is my code. Help.

using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour {

public Transform TobyController;        // Reference to the TobyController's transform.

void Awake ()
{
	//Setting up the reference.
	//TobyController = GameObject.FindGameObjectWithTag("TobyController").transform; 
	TobyController = GameObject.FindWithTag ("TobyController").transform;
}

void FixedUpdate ()
{
	TrackTobyController();
}

void TrackTobyController ()
{
	// By default the target x and y coordinates of the camera are it's current x and y coordinates.
	float targetX = TobyController.position.x;
	float targetY = TobyController.position.y;
	
	// Set the camera's position to the target position with the same z component.
	Vector3 v = new Vector3(targetX, targetY, transform.position.z);
	transform.position = Vector3.Lerp(transform.position, v, Time.deltaTime);
	
}

}

By the way, I am making a simple ball rolling game and my balls name is Toby :^)

The particular error you are getting means that you are trying to reference an object that doesn’t exist, or the program doesn’t think it exists. The best explanation of this error is “Imagine you’re in a car park with another person, and you give them car keys, point to a parking space and say ‘Unlock that car’, however the parking space you pointed to was empty. They wouldn’t understand.” That’s essentially what’s going on.

My first guess is that void Awake() isn’t being called.