For whatever reason (probably I fucked something up), my tilemap composite collider will not allow me to use this code?
I am honestly just stumped on what to do. Everything else works, but for some reason, this just doesn't...
If someone could help that would be extremely nice :D
public class Checkpoint : MonoBehaviour
{
[SerializeField] private Transform originalSpawnPosition;
protected Transform respawnPosition;
[SerializeField] private GameObject previousRespawnPosition;
[SerializeField] private GameObject player;
private void Awake()
{
if (player == null)
Debug.LogWarning("The Player game object has not been assigned to respawn point!");
}
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "Player")
{
respawnPosition = transform;
if (previousRespawnPosition == null)
return;
else
previousRespawnPosition.SetActive(false);
}
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.R))
ReturnToCheckpoint();
}
public void ReturnToCheckpoint()
{
Debug.Log("Returned");
if(respawnPosition == null)
player.transform.position = originalSpawnPosition.transform.position;
player.transform.position = respawnPosition.transform.position;
}
}
public class Respawn : MonoBehaviour
{
private Checkpoint checkpoint;
private void OnTriggerEnter2D(Collider2D collision)
{
if (collision.tag == "Player")
checkpoint.ReturnToCheckpoint(); //the error is here, it just says "nullreferenceexception: object reference not set to an instance of an object.
}
}
Additionally I have put an image of my tilemap collider here too if that helps at all!
Thanks a bunch!
