0

Tengo el siguiente problema con un script en Unity (C#) Lo que hace es tomar un string del PlayerPrefs y lo pone en el Texto del TextMeshPro.

Error: NullReferenceException: Object reference not set to an instance of an object LogicLobby.Start () (at Assets/Scenes/Lobby/LogicLobby.cs:19)

Code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

using UnityEngine.UI;
using TMPro;

public class LogicLobby : MonoBehaviour
{
    public LogicCharacter jugador;
    public TextMeshProUGUI namePlayer;

    // Start is called before the first frame update
    void Start()
    {
        jugador = GameObject.FindGameObjectWithTag("Player").GetComponent<LogicCharacter>();
        jugador.enabled = false;
        namePlayer.text = PlayerPrefs.GetString("namePlayer");
    }

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

    public void IrMenu()
    {
        SceneManager.LoadScene("Menu");
    }

    public void IrMisiones()
    {
        SceneManager.LoadScene("Juego");
    }
}
  • 1
    Mira [ask] para que tu pregunta sea mejor recibida. También, aprovecha y haz el [tour] para entender mejor cómo funcionamos y de paso obtener tu primera [medalla](https://es.stackoverflow.com/help/badges)! Sobre que linea tira el error? – gbianchi May 21 '21 at 22:56
  • ¿Responde esto a tu pregunta? [¿Qué es una NullReferenceException y cómo solucionarla?](https://es.stackoverflow.com/questions/75999/qu%c3%a9-es-una-nullreferenceexception-y-c%c3%b3mo-solucionarla) – Pablo Gutiérrez May 24 '21 at 20:46

1 Answers1

0

Te recomiendo que lo hagas en 2 lineas

var GO = GameObject.FindGameObjectWithTag("Player");
jugador = GO.GetComponent<LogicCharacter>();
    

Tienes que verificar que existe solo 1 objeto con el tag "Player"

Si existe mas de uno es posible que uno de ellos no tenga el script "LogicCharacter"