Cette erreur est l’une des plus fréquentes sur Unity. Cela signifie littéralement: La référence de l’objet n’est pas définie à une instance d’un objet.
En gros, cela veut dire que l’on essaye d’atteindre un objet qui est null.
Voici un exemple de script, trouvé sur le forum officiel, qui provoque cette erreur :
using UnityEngine;
using System.Collections;
public class BallController : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
public void Do(){
GameObject paddleGameObject = GameObject.Find("paddle");
Destroy(this.gameObject);
PaddleController paddleController = paddleGameObject.GetComponent<PaddleController>();
paddleController.SpawnBall();
}
}
Et voici la réponse pour corriger cette erreur
Unity dit que que quelque chose à la ligne 18 du script BallController n’existe pas. Dans ce cas, ce serait la variable paddleGameObject ou son composant PaddleController.
Dans ce cas précis, le problème peut provenir donc de 2 endroits :
Ligne 16
GameObject paddleGameObject = GameObject.Find("paddle");
Peut-être que unity ne parvient pas à trouver l’objet paddle ? Existe-t-il dans la scène ?
Ligne 18
... paddleGameObject.GetComponent<PaddleController>();
Est-ce que l’objet paddle sur la scène a bien un composant PaddleController.
La personne qui a posé la question avouera finalement qu’il a fait une erreur à la ligne 16, il voulait en fait faire une référence à l’objet Player :
GameObject paddleGameObject = GameObject.Find("Player");






