#Beginner here, having a hard time with the respawn scripts. (2D)

1 messages · Page 1 of 1 (latest)

smoky furnace
#

Player respawn code:
using UnityEngine;

public class PlayerRespawn : MonoBehaviour
{
private Transform currentCheckpoint; //Storeing our last checkpoint here
private Health playerHealth;

private void Awake()
{
    playerHealth = GetComponent<Health>();
}

public void Respawn()
{
    transform.position = currentCheckpoint.position; //move player to checkpoint position
    playerHealth.Respawn(); // Restore the player health

    // Move camera to checkpoint room
    Camera.main.GetComponent<CameraController>().MoveToNewRoom(currentCheckpoint.parent);
}

// Activate checkpoint
private void OnTriggerEnter2D(Collider2D collision)
{
    if (collision.transform.tag == "Checkpoint")
    {
        currentCheckpoint = collision.transform;
        collision.GetComponent<Collider2D>().enabled = false;
    }
}

}

#

Health code:
using UnityEngine;

public class Health : MonoBehaviour
{
[SerializeField] private float startingHealth;
public float currentHealth { get; private set; }
private bool dead;

private void Awake()
{
    currentHealth = startingHealth;
}
public void TakeDamage(float _damage)
{
    currentHealth = Mathf.Clamp(currentHealth - _damage, 0, startingHealth);

    if (currentHealth > 0)
    {
        // player hurt
    }
    else
    {
        if (!dead)
        {
            GetComponent<PlayerMovement>().enabled = false;
            GetComponent<PlayerRespawn>().Respawn();
            dead = true;
        }
    }
}

public void Respawn()
{
    dead = false;
    //playerhealth.Respawn();
    AddHealth(startingHealth);
    GetComponent<PlayerMovement>().enabled = true;
}

public void AddHealth(float _value)
{
    currentHealth = Mathf.Clamp(currentHealth + _value, 0, startingHealth);
}

}

blissful widget
smoky furnace
#

so what do I do to fix it? I am not really the best at coding.

#

@blissful widget

blissful widget
smoky furnace
blissful widget