- Home /
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.
Answer by lunoland · Aug 15, 2016 at 08:27 PM
Does your Main Camera object have the "MainCamera" tag?
Hi lunoland, it didn't have the main camera tag, the name was set to $$anonymous$$ain Camera, but not the tag, the script is running without any errors now, thanks for your help.
Your answer
Follow this Question
Related Questions
Is it possible to define a public variable of type UnityEngine.Object? 0 Answers
C#, "object reference not set to an instance of an object" 3 Answers
What is wrong with my C# script? 2 Answers
Make object follow mouse, while actually moving camera, instead of object 2 Answers
Move an object to mousePosition 2 Answers