Здравствуйте, есть условие что когда игрок уничтожает 30 врагов то текст меняется на "Пройдено". Но когда значение больше 30 то выскакивает ошибка и вылетает игра.
NullReferenceException: Object reference not set to an instance of an object
EnemyControl.OnTriggerEnter2D (UnityEngine.Collider2D col) (at Assets/Script/EnemyControl.cs:56)
Код счетчика Kill
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine;
public class QuestionOneLvl : MonoBehaviour
{
Text KillUIText;
public GameObject TextWork;
public GameObject TextQ;
private int kill;
public int Kill
{
get
{
return this.kill;
}
set
{
this.kill = value;
UpdateKillTextUI();
}
}
private void Start()
{
KillUIText = GetComponent<Text>();
}
private void Update()
{
KillEnemy();
}
void UpdateKillTextUI()
{
string killStr = string.Format("{0:0}", kill);
KillUIText.text = killStr;
}
//Вот самое условие
private void KillEnemy()
{
if (Kill == 30)
{
TextQ.SetActive(false);
TextWork.SetActive(true);
return;
}
}
}
Строку ошибки обозначил 56 строка "EnemyControl"
private void OnTriggerEnter2D(Collider2D col)
{
//Обнаружить столкновение вражеского корабля с кораблем игрока или с пулей игрока
if ((col.tag == "PlayerShipTag") || (col.tag == "PlayerBulletTag"))
{
PlayExplosion();
//Добавить 100 очков в score
scoreUITextGO.GetComponent<GameScore>().Score += 50;
//Добавить +1 к Kill
KillUIText.GetComponent<QuestionOneLvl>().Kill += 1; // 56 строка из консоли
//Удалить врага
Destroy (gameObject);
}
}