Player object is being destroyed after OnClick() event

Hi i’m a noob to unity and will be doing something wrong i just can’t figure out what it is…

Basically i have i method that gets fired every time an object is hit to decrease the players lives by 1. When the players lives hits 0 i’m calling SetActive(false) on the player object and displaying a panel with a continue button on it. When you click the button the players lives is reset back to 3 and the panel is hidden and the player is set to active again.

However at the end of it all the the player object is being destroyed and removed from the hierarchy all together and i don’t know why as i’m not calling Destroy() anywhere in the whole project?

I basically want the player lives to be reset to 3, the player object to be active and appear again and the panel to disappear. Please can somebody offer some guidance on how to achieve this. Thanks.

public Player player;
public GameObject continuePanel;

public void RemoveLive()
{
    player.playerLives -= 1;
    LivesRemainingText.text = "Lives: " + player.playerLives.ToString();

    if(player.playerLives == 0)
    {
        //show continue panel
        player.gameObject.SetActive(false);
        continuePanel.gameObject.SetActive(true);
    }

}

public void ResetLives()
{
    player.playerLives = 3;
    LivesRemainingText.text = "Lives: " + player.playerLives.ToString();
    player.gameObject.SetActive(true);
    continuePanel.gameObject.SetActive(false);
}

}

My best guess before I run out the door is that instead of referencing the Player component of a GameObject like you have done:

public Player player;

Perhaps you should be using the GameObject instead:

public GameObject player;

… and then updating the score with

player.GetComponent<Player>().playerLives

… and disabling/enabling the GameObject with:

player.SetActive(false)

player.SetActive(true)

My reasoning is that when you call the SetActive function on the GameObject in your current code, you are referring to a disabled GameObject without using a direct reference to it - and attempting to access it through one of it’s Components.

I could be horribly wrong here, but I’ve been doing some similar stuff with SetActive() recently and it’s the first thing that came to my mind.

Good luck!