I’m not sure why, but I keep on getting an error regarding to NullReferenceException in my script for a game that I’m working on. It keeps on referring to line 96 (or //KeyDisplay.sprite = Resources.Load (“pixel_key”) as Sprite;) I try to display a sprite on my UI whenever I walk to pick up a key. On that collision it should be updating the sprite on the UI after colliding with the key, but it just throws that exception out at me. Please help!
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Move : MonoBehaviour
{
private SpriteRenderer spriteRenderer;
public Sprite Character_Back, Character_Front, Character_Left, Character_Right, pixel_key;
public float speed = 1.5f;
public Vector2 tempSpeed;
private int count;
public Text amtOfKeys;
public Image KeyDisplay;
Animator animator;
void Start ()
{
animator = GetComponent<Animator>();
spriteRenderer = GetComponent<SpriteRenderer>();
if (spriteRenderer.sprite == null)
spriteRenderer.sprite = Character_Front;
count = 0;
amtOfKeys.text = "";
}
void Update ()
{
animator.SetBool("Up", false);
animator.SetBool("Down", false);
animator.SetBool("Left", false);
animator.SetBool("Right", false);
if (Input.GetKey (KeyCode.A))
{
transform.position += Vector3.left * speed * Time.deltaTime;
animator.SetFloat ("X-Speed", -speed);
tempSpeed.x = -speed;
}
else if (Input.GetKey (KeyCode.D))
{
transform.position += Vector3.right * speed * Time.deltaTime;
animator.SetFloat ("X-Speed", speed);
tempSpeed.x = speed;
}
if (Input.GetKey (KeyCode.W))
{
transform.position += Vector3.up * speed * Time.deltaTime;
animator.SetFloat ("Y-Speed", speed);
tempSpeed.y = speed;
}
else if (Input.GetKey (KeyCode.S))
{
transform.position += Vector3.down * speed * Time.deltaTime;
animator.SetFloat ("Y-Speed", -speed);
tempSpeed.y = -speed;
}
if (tempSpeed.y > 0)
{
animator.SetBool ("Up", true);
}
else if (tempSpeed.y < 0)
{
animator.SetBool ("Down", true);
}
else if (tempSpeed.x > 0)
{
animator.SetBool ("Right", true);
}
else if (tempSpeed.x < 0)
{
animator.SetBool ("Left", true);
}
else
{
}
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag("Key"))
{
other.gameObject.SetActive(false);
count++;
SetAmtOfKeys ();
}
}
void SetAmtOfKeys()
{
amtOfKeys.text = " Keys : " + count.ToString ();
//KeyDisplay.sprite = Resources.Load<Sprite> ("pixel_key") as Sprite;
}
}