- Home /
NullReferenceException: Object reference not set to an instance of an object Plane.OnCollisionEnter2D (UnityEngine.Collision2D collision) (at Assets/Scripts/Plane.cs:37)
My Error Messages:
The referenced script on this Behaviour is missing!
The referenced script on this Behaviour (Game Object 'GameController') is missing!
NullReferenceException: Object reference not set to an instance of an object Plane.OnCollisionEnter2D (UnityEngine.Collision2D collision) (at Assets/Scripts/Plane.cs:37)
My Control Script: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement;
public class GameControl : MonoBehaviour {
public static GameControl instance;
public GameObject GameOverText;
public bool GameOver = false;
// Use this for initialization
void Awake()
{
if (instance == null)
{
instance = this;
}
else if (instance != this)
{
Destroy(this.gameObject);
}
}
// Update is called once per frame
void Update() {
}
public void PlaneDied()
{
GameOverText.SetActive (true);
GameOver = true;
}
}
My Player/Plane Script:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Plane : MonoBehaviour {
public float upforce = 200f;
private bool isDead = false;
private Rigidbody2D rb2d;
private Animator anim;
// Use this for initialization
void Start ()
{
rb2d = GetComponent<Rigidbody2D> ();
anim = GetComponent<Animator> ();
}
// Update is called once per frame
void Update()
{
if (isDead == false)
{
if (Input.GetMouseButtonDown(0))
{
rb2d.velocity = Vector2.zero;
rb2d.AddForce(new Vector2(0, upforce));
}
}
}
private void OnCollisionEnter2D(Collision2D collision)
{
isDead = true;
anim.SetTrigger("Die");
GameControl.instance.PlaneDied ();
}
}
Is anim and GameOverText set? also use lazy ins$$anonymous$$d for your instance in combination with GetComponent<GameControl>()
:
private GameControl _instance;
public GameControl instance
{ get {
if (_instance != null) return _instance;
_instance = this;
return _instance;
}
}
No need for the awake method