@Daniil2310

NullReferenceException: Object reference not set to an instance of an object vubros.onDown — ошибка в Unity?

Добрый день, в Unity у меня выскочила вот такая ошибка : NullReferenceException: Object reference not set to an instance of an object vubros.onDown.
Прошу помощи,чтобы разобраться почему?
код 1 :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class vubros : MonoBehaviour
{
   
    public GameObject item;
    private Transform player;
    public static bool butslives;
    public static float timerperemenai = 0;
  
    public static bool spedbuts;
    public GameObject timer;
    //public static float resettime = 0;
   // public static float resettimechet = 0;
   // public static bool reset = false;


    public static bool timeropisanie = false;
    public static bool speedbutsp = false;


    private void Start()
    {
        player = GameObject.FindGameObjectWithTag("Player").transform;
        butslives = false;
        



       ;
    }
    public void spawnDropedItem()
    {
        Vector3 playerPos = new Vector3(player.position.x + 3, player.position.y + 1,9);
        Instantiate(item, playerPos, Quaternion.identity);
    }
    public void Butslives()
    {
        
        
            if (plaeyr.health < 3) 
            {
                plaeyr.health += 1;
                Debug.Log(plaeyr.health + " plaeyr.health");
                butslives = true;
                Debug.Log("жизнь +");
                Destroy(gameObject);
            }
            else
            {
                Destroy(gameObject);
                Debug.Log("-");
            }
        
    }
public void speedbuts()
    {
        plaeyr.speedbuts += 2.5f;
        timerperemenai++;
        speedbutsp = false;
        //spedbuts = true;
        //porehoddliof.oftimer = true;
        //resettime++;
        //resettimechet++;

        
        
        
        
    }
    
    private void Update()
    {
        if (resettimechet >= 2)
            reset = true;
            resettimechet--;
           
    }
    public void onDown()
    {
        //opisanie.presed = true;
        speedbutsp = true;
        GetComponent<opisanie>().opisaniegameob.SetActive(false);//ругается на эту строчку

    }
    public void onUp()
    {
        //opisanie.presed = false;
        StartCoroutine(timer());

    }
    private IEnumerator timer()
    {
        yield return new WaitForSeconds(2.0f);
        timeropisanie = true;
    }



}

код 2 :
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class opisanie : vubros
{
    //public static bool presed = false;


    public Text text;
    public  GameObject opisaniegameob;
    public static bool timeriopisanie; 
    //private bool zadershka = true;
    
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        if (vubros.speedbutsp == true && vubros.timeropisanie == false)
        {
            speedbuts();
        }
        else if (vubros.speedbutsp == false && vubros.timeropisanie == true)
        {
            opisaniegameob.SetActive(true);
        }
    }
}

Пожалуйста, не надо говорить, что нужно было сначала почитать в интернете, почитать документацию. Я читал, я не понял ,что у меня не так. (извините, что я тупой (: )
  • Вопрос задан
  • 26 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MrSlowpoke
Ошибка сразу или после второго выполнения функции?
Скорее всего проблема в том, что ты отключаешь компонент, а потом пытаешься его найти.
Как вариант заранее хранить ссылку на компонент, тогда ошибки не будет
Ответ написан
Ваш ответ на вопрос

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

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