Jump to content
Ruben Hernandez

nullreferenceexception: object reference not set to an instance of an object

Recommended Posts

Buenas noches!

Soy nuevo por aqui,y vengo buscnado algo de ayuda 😅

Resulta que estoy programando un juego de Asteroides ,el cual cuando te matan,aparece una escena en la que puedes introducir tu nombre y darle a un boton para volver al menu principal y que se guarde tu nombre con los puntos.

Pues al intentar guardar los datos,me tira ese error  "nullreferenceexception: object reference not set to an instance of an object" , los datos los guardo en una base de datos Sqlite, y funciona perfectamente,pues puedo cargar un ranking con todas las puntuaciones (que he introducido a mano con otro programa) ,lo maximo que consegui hacer mediante codigo fue que se grabara el nombre en la base de datos,pero la puntuacion se quedaba en 0.

Aqui dejo la parte del codigo que da error,he buscado en google y en los foros oficiales de Unity,pero no se solucionarlo.

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Data;
using System.IO;
using Mono.Data.Sqlite;
using System;

public class GuardaRanking : MonoBehaviour
{
    public int Score;
    public string Name;

    // Start is called before the first frame update
    void Start()
    {
       
    }

    // Update is called once per frame
    void Update()
    {
        GameController gameController = GetComponent<GameController>();
        Score = gameController.Puntos;
        Nombres Nombre = GetComponent<Nombres>();
        Name = Nombre.input;
    }


    public void GuardaPuntos()
    {

        RankingManager RankingGo = GetComponent<RankingManager>();
       
        RankingGo.InsertarPuntos(Name,Score);
    }
}

Me da error en la Linea 24

Saludos y gracias de Antemano.

Share this post


Link to post
Share on other sites

Lo más probable es que alguno de los GetComponent este retornando nulo, recuerda que GetComponent funciona únicamente cuando el Component está en el mismo GameObject.

Share this post


Link to post
Share on other sites

Buenas

Gracias por responder, los componentes estan en distintas escenas,hay alguna manera de recuperar esos datos?

Por ejemplo ,los puntos estan en un objeto Gamecontroller dentro de la escena principal de juego, y Nombres en la Main camera de la escena Nombres.

Tengo el codigo bastante feo diria yo...

 

Saludos y gracias

Share this post


Link to post
Share on other sites

Claro, lo puedes hacer con FindObjectOfType, pero el objeto componente deberia estar instanciado. 

Lo mejor es trabajar con referencias en tiempo de edición, de ese modo comprenderas más facilmente los errores del juego.

Share this post


Link to post
Share on other sites

Buenas!

Muchas gracias por responder,al final lo solucione pasandolo todo a la misma escena.

Saludos!

Edited by Ruben Hernandez

Share this post


Link to post
Share on other sites

×
×
  • Create New...