Hey everyone, making a 2D side scroller game and like most, im trying to create some hazards. I drop in a sprite of some “spikes”, put a collider on it and mark “Is trigger”. Then I attach this script to it.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Hazard : MonoBehaviour {
private Controls player;
public Transform start;
void Start()
{
player = FindObjectOfType<Controls>();
}
void Update()
{
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player")
{
player.transform.position = start.position;
}
}
}
The script debugs perfectly. Now I create a new Empty Object and call it “start” and position it at the beginning of my level. Lastly, I go to player and apply the Player tag I just created to it. So now, when the player collides with a spike, he should spawn back at the “start” (the empty object I created called start). When I play it, the player walks fine and as soon as he touches the spike, nothing happens but this error does come up
“NullReferenceException: Object reference not set to an instance of an object
Hazard.OnTriggerEnter2D (UnityEngine.Collider2D other) (at Assets/Scripts/Hazard.cs:23)” and it points to my line of text “player.transform.position = start.position;”. It appears that it cant find my Empty Object I created called start. This object does not have anything attached to it. The only thing in the Inspector for the Spike is the Sprite, the collider and the Hazard code I attached to it. Im not sure how it can be coming up null when im referencing the object. Unless im not referencing it properly? Any help is greatly appreciated.