Je travaille sur le système de sauvegarde d'un jeu coopératif local sur lequel je travaille. Le but du code est d'établir une classe statique sérialisable qui a des instances des quatre joueurs et les données pertinentes qu'ils doivent stocker pour l'enregistrement en binaire.Erreur NullReferenceException dans Unity lorsque j'essaie d'obtenir des données d'une classe statique
[System.Serializable]
public class GameState {
//Current is the GameState referenced during play
public static GameState current;
public Player mage;
public Player crusader;
public Player gunner;
public Player cleric;
public int checkPointState;
//Global versions of each player character that contains main health, second health, and alive/dead
//Also contains the checkpoint that was last activated
public GameState()
{
mage = new Player();
crusader = new Player();
gunner = new Player();
cleric = new Player();
checkPointState = 0;
}
}
La classe juste Player
contient les ints qui suivent les statistiques des joueurs et un bool pour s'ils sont à l'état vivant ou non. Mon problème vient quand une de mes classes dans la scène de jeu doit obtenir des données de cette classe statique. Lorsque la classe statique est référencée, elle renvoie l'erreur.
void Start() {
mageAlive = GameState.current.mage.isAlive;
if (mageAlive == true)
{
mageMainHealth = GameState.current.mage.mainHealth;
mageSecondHealth = GameState.current.mage.secondHealth;
} else
{
Destroy(this);
}
}
Je suis nouveau au codage, donc je ne sais pas comment l'unité interagit avec les classes statiques qui ne héritent pas de MonoBehaviour
. J'ai basé ce code sur un didacticiel qui a fonctionné de manière similaire, donc je ne suis pas sûr de la nature du problème.
S'il vous plaît assurez-vous de lire http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it –