Je crée un jeu et je veux montrer un panneau quand le joueur est mort

J'ai essayé différentes approches mais aucune ne semble faire ce que je veux

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DeadOrAlive : MonoBehaviour
{

    public GameObject Player;
    public GameObject deadPanel;

    void Update()
    {
        if (!GameObject.FindWithTag("Player"))
        {
            deadPanel.SetActive(true);
        }
    }


}
0
Sindre Berge 3 nov. 2019 à 16:59

2 réponses

Pour vérifier si un objet a été détruit, vous devez utiliser le OnDestroy de MonoBehavior comme ceci:

// Attach this script to the player object
public class DeadOrAlive : MonoBehaviour
{
    public GameObject deadPanel;

    void OnDestroy()
    {
        deadPanel.SetActive(true);
    }
}

Vous pouvez également au lieu de détruire l'objet joueur, le définir sur actif / inactif, mais pour vérifier si le joueur est mort ou vivant de cette façon, vous aurez besoin d'un objet séparé qui vérifie l'état actif:

//Attach this to a object which isn't a child of the player, maybe a dummy object called "PlayerMonitor" which is always active
public class DeadOrAlive : MonoBehaviour
{
    public GameObject deadPanel;

    void Update()
    {
        if (!GameObject.FindWithTag("Player"))
        {
            deadPanel.SetActive(true);
        }
    }
}

Je n'ai pas utilisé l'unité depuis un moment et j'ai oublié à quel point cela pouvait devenir bizarre.

3
Vincent Bree 3 nov. 2019 à 14:45

Grâce à @VincentBree, c'est comme ça que je l'ai fait

  void Update()
{
    if (!Player.activeSelf)
    {
        deadPanel.SetActive(true);
    }
}
0
Sindre Berge 3 nov. 2019 à 14:44