@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
Ошибка сразу или после второго выполнения функции?
Скорее всего проблема в том, что ты отключаешь компонент, а потом пытаешься его найти.
Как вариант заранее хранить ссылку на компонент, тогда ошибки не будет
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы