Je coince sur un truc sans doute bête...
Un panneau UI doit s'afficher après l’exécution d'un script. mais ne le fait pas sous prétexte que:
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
Lorsque je lance la séquence qui appelle Reward() après avoir chargé directement ma scène, ça fonctionne.
Mais après être repassé par le menu principal et avoir rechargé la scène (nouveau jeu ou sauvegarde), ça coince.
La touche "R" fonctionne par contre bien et fait toujours bien apparaître ou disparaître mon écran UI, peu importe que je sois repassé par le menu ou non!
Alors, pourquoi mon GameObject existe quand j'utilise la touche "R" et pas quand j'appelle la fonction Reward()???
Une idée me serait la bienvenue
Merci d'avance pour votre temps.
Code : Tout sélectionner
using UnityEngine;
public class RewardScreen : MonoBehaviour
{
public GameObject ui;
#region Singleton
public static RewardScreen instance;
private void Awake()
{
if (instance != null)
{
Debug.LogError("il y a déjà un RS dans scène");
return;
}
instance = this;
}
#endregion
public void Update()
{
if (Input.GetKeyDown(KeyCode.R)) //Permet de tester que "Toggle" fonctionne s'active et se désactive et ça fonctionne
{
Toggle();
}
}
public void Reward() //Appelé depuis un autre script.
{
PlayerStats.bonus += 50; //Bien ajouté
Toggle();
}
public void Toggle() //Aussi appelé depuis un bouton "CONTINUE" dans le "rewardUI" et ça fonctionne.
{
ui.SetActive(!ui.activeSelf); //ça coince ici quand la fonction est appelée depuis Reward()...
if (ui.activeSelf)
{
Time.timeScale = 0f;
}
else
{
Time.timeScale = 1f;
}
}
}