Object reference not set error

Hi,

I have an "Object reference not set to instance of object error in my game and looking at the line of code that it has the problem with I can’t figure out what is going wrong, any help or advice would be appreciated.

Here’s a screenshot of the game object that I’m having the issue with-

Here is the code that has the error with the error message line of code highlighted -

using UnityEngine;
using System.Collections;

public class plateSwitch : MonoBehaviour {

	public Sprite plate, setting;
	private SpriteRenderer spriteRenderer;

	void Start() {
		spriteRenderer = gameObject.GetComponent<SpriteRenderer>();
		SetVolume(PlayerPrefs.GetInt("volume", 50) != 50 ? false : true);
	}

	void Update() {
		if(isTouched()) {
			SetVolume(PlayerPrefs.GetInt("volume", 50) != 50 ? true : false);
		}
	}

	private void SetVolume(bool IsOn) {
		if(IsOn) {
			spriteRenderer.sprite = plate;
			PlayerPrefs.SetInt("volume", 50);
		} else {
			spriteRenderer.sprite = setting;
			PlayerPrefs.SetInt("volume", 0);
		}
	}

	public bool isTouched() {
		bool result = false;
		if(Input.touchCount == 1) {
			if(Input.touches[0].phase == TouchPhase.Ended) {
				Vector3 wp = Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position);
				Vector2 touchPos = new Vector2(wp.x, wp.y);
				if (GetComponent<Collider2D>() == Physics2D.OverlapPoint(touchPos)) {
					result = true;
				}
			}
		}
		if(Input.GetMouseButtonUp(0)) {
			***Vector3 wp = Camera.main.ScreenToWorldPoint(Input.mousePosition);***
			Vector2 mousePos = new Vector2(wp.x, wp.y);
			if (GetComponent<Collider2D>() == Physics2D.OverlapPoint(mousePos)) {
				result = true;
			}
		}
		return result;
	}

}

I’ve been stuck with this, and I just don’t know enough sharp myself at the moment to solve the issue.

Vector3 wp = Camera.main.ScreenToWorldPoint(Input.mousePosition);

Is the line in question. Thanks again for any help or advice that can point me in the right direction to fix this.

Does your Main Camera object have the “MainCamera” tag?