Ошибка в Unity NullReferenceException: Object reference not set to an instance of an object и что с ней делать?

Есть 1-ый скрипт
using UnityEngine;
using System.Collections;

public class CollectableBounce : MonoBehaviour 
{
	
    private SpriteRenderer render;
    private int damage = 1; 
    private GameObject particle;
    private GameObject heart;

	void Start ()
	{
        particle = GameObject.Find("Healling");
        render = GetComponent<SpriteRenderer>();
        heart = GameObject.Find("Healths");
	}

	// Update is called once per frame
	void Update ()
	{
	
	}

	void OnTriggerEnter2D(Collider2D collider)
	{
		if (collider.gameObject.name == "PlayerCharacter")
		{
            int lasthp = heart.GetComponent<UIControler>().health;
            int futurehp = heart.GetComponent<UIControler>().health + damage;
            heart.GetComponent<UIControler>().health = futurehp;
            heart.GetComponent<UIControler>().GetHit(damage, lasthp, futurehp);
            render.enabled = false;
            particle.transform.position = new Vector2(this.transform.position.x, this.transform.position.y);
            particle.GetComponent<ParticleSystem>().Play();
			Destroy(gameObject);
		}
	}
}

И 2-ой скрипт
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class UIControler : MonoBehaviour {

    public int health = 10;
    public GameObject player;
    public Animator animator;
    public SpriteRenderer render;
	// Use this for initialization
	void Start () {
        render = GetComponent<SpriteRenderer>();
        animator = GetComponent<Animator>();
        
	}

    void Update()
    {

    }
    public void GetHit(int damage, int lasthp, int futurehp)
    {
        if(lasthp == 10 && damage == 2 && futurehp == 8)
        {
            animator.SetTrigger("10HPdown");
        }
        if (lasthp == 9 && damage == 2 && futurehp == 7)
        {
            animator.SetTrigger("9HPdown");
        }
        if (lasthp == 8 && damage == 2 && futurehp == 6)
        {
            animator.SetTrigger("8HPdown");
        }
        if (lasthp == 7 && damage == 2 && futurehp == 5)
        {
            animator.SetTrigger("7HPdown");
        }
        if (lasthp == 6 && damage == 2 && futurehp == 4)
        {
            animator.SetTrigger("6HPdown");
        }
        if (lasthp == 5 && damage == 2 && futurehp == 3)
        {
            animator.SetTrigger("5HPdown");
        }
        if (lasthp == 4 && damage == 2 && futurehp == 2)
        {
            animator.SetTrigger("4HPdown");
        }
        if (lasthp == 3 && damage == 2 && futurehp == 1)
        {
            animator.SetTrigger("3HPdown");
        }
        if (lasthp == 2 && damage == 2 && futurehp == 0)
        {
            animator.SetTrigger("2HPdown");
            PlayerMovement1 se = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerMovement1>() as PlayerMovement1;
            se.isDead = true;
        }
        if (lasthp == 1 && damage == 2 && futurehp == -1)
        {
            animator.SetTrigger("1HPdown");
            PlayerMovement1 se = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerMovement1>() as PlayerMovement1;
            se.isDead = true;
        }
        if (lasthp == 9 && damage == 1 && futurehp == 10)
        {
            animator.SetTrigger("9HPup");
        }
        if (lasthp == 8 && damage == 1 && futurehp == 9)
        {
            animator.SetTrigger("8HPup");
        }
        if (lasthp == 7 && damage == 1 && futurehp == 8)
        {
            animator.SetTrigger("7HPup");
        }
        if (lasthp == 6 && damage == 1 && futurehp == 7)
        {
            animator.SetTrigger("6HPup");
        }
        if (lasthp == 5 && damage == 1 && futurehp == 6)
        {
            animator.SetTrigger("5HPup");
        }
        if (lasthp == 4 && damage == 1 && futurehp == 5)
        {
            animator.SetTrigger("4HPup");
        }
        if (lasthp == 3 && damage == 1 && futurehp == 4)
        {
            animator.SetTrigger("3HPup");
        }
        if (lasthp == 2 && damage == 1 && futurehp == 3)
        {
            animator.SetTrigger("2HPup");
        }
        if (lasthp == 1 && damage == 1 && futurehp == 2)
        {
            animator.SetTrigger("1HPup");
        }
    }
}

и следственно ошибка
NullReferenceException: Object reference not set to an instance of an object
CollectableBounce.OnTriggerEnter2D (UnityEngine.Collider2D collider) (at Assets/HyperLuminal/2D Fantasy Forest Tileset/Scripts/CollectableBounce.cs:29)

Что с ней делать?
Возможно подсказка

ещё есть скрипт, который идентичен 1-му:
using UnityEngine;
using System.Collections;

public class CollectableDamage : MonoBehaviour
{
    private SpriteRenderer render;
    private int damage = 2;
    private GameObject particle;
    private GameObject heart;
    void Start()
    {
        particle = GameObject.Find("Boom");
        render = GetComponent<SpriteRenderer>();
        heart = GameObject.Find("Healths");
    }

    // Update is called once per frame
    void Update()
    {
      
    }
    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.gameObject.name == "PlayerCharacter")
        {
            int lasthp = heart.GetComponent<UIControler>().health;
            int futurehp = heart.GetComponent<UIControler>().health - damage;
            heart.GetComponent<UIControler>().health = futurehp;
            heart.GetComponent<UIControler>().GetHit(damage, lasthp, futurehp);
            render.enabled = false;
            particle.transform.position = new Vector2(this.transform.position.x, this.transform.position.y);
            particle.GetComponent<ParticleSystem>().Play();
            Destroy(gameObject);
        }
    }
}

Но на него не ругается...
  • Вопрос задан
  • 4108 просмотров
Решения вопроса 1
Pixel_Guy
@Pixel_Guy
C# программист разрабатывающий игры на unity
Ошибка возникает, если обращаешься к нулевому объекту. Проверь все ли параметры заполнены.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы