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-
![alt text][1]
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();
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() == 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() == 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.
[1]: /storage/temp/76165-screen-shot-2016-08-15-at-211104.png
↧