Страница 1 из 1

NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 16:02
DimaJoke
всем привет. я продолжаю писать консоль... добавляю команды.

делаю команду "color"
но вылазит эта бяка NullReferenceException: Object reference not set to an instance of an object
ConsoleCommands.Update () (at Assets/Scripts/GameConsole/Core/ConsoleCommands.cs:29)

вот скрипт команд
Синтаксис:
Используется csharp
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ConsoleCommands : MonoBehaviour {
public static string Commands;
public string Test = Commands;
public string[] Command;

public Color[] TextColors;

void Update()
{
if(Commands != null)
{
Command  = Commands.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

if(Command[0] == "Clear" || Command[0] == "clear")
{
GameConsole.Clear();
}

if(Command[0] == "Color" || Command[0] == "color")
{
if(Command[1] == "red" || Command[1] == "Red")
{
GameConsoleSetup.GCS.ConsoleTxt.GetComponent<Text>().color = TextColors[0];
}

}
Commands = null;
}



}

}
 


вот скрипт GameConsoleSetup, к которому привязан текст
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class GameConsoleSetup : MonoBehaviour {

public Text ConsoleTxt;
public InputField ConsoleInput;

public KeyCode Enter;
public static GameConsoleSetup GCS;
       
        void Update()
        {
        ConsoleTxt.GetComponent<Text>().text = GameConsole.ConsoleText;
        if(Input.GetKeyDown(KeyCode.Return))
        {
        ConsoleCommands.Commands = ConsoleInput.GetComponent<InputField>().text;
        ConsoleInput.GetComponent<InputField>().text = null;

        }
        }

}

 


Вот и всё.. Не понимаю, какой объект он не находит :-?

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 16:14
DimaJoke
я не понял сразу.. я в скрипте GameConsoleSetup не инициализировал GCS

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 16:16
Saltant
Он же тебе говорит что в 29 строке проблема.

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 16:21
DimaJoke
Saltant писал(а):Он же тебе говорит что в 29 строке проблема.

в том-то и дело, что я понял. но я не понял, что он не видит: класс GameConsoleSetup, или GCS, или ConsoleTxt

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 16:50
Friend123
DimaJoke писал(а):в том-то и дело, что я понял. но я не понял, что он не видит: класс GameConsoleSetup, или GCS, или ConsoleTxt

Ваш перевод ошибки в студию! По-моему из описания ошибки всё понятно, или нет?

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 16:51
DimaJoke
Friend123 писал(а):
DimaJoke писал(а):в том-то и дело, что я понял. но я не понял, что он не видит: класс GameConsoleSetup, или GCS, или ConsoleTxt

Ваш перевод ошибки в студию! По-моему из описания ошибки всё понятно, или нет?

Нет, мне не понятно, что он не видит.. но так или иначе я решил эту проблему..

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 16:55
Friend123
DimaJoke писал(а):Нет, мне не понятно, что он не видит.. но так или иначе я решил эту проблему..

Так если не получается сходу найти в чем проблема - всегда можно расставить брейкпоинты какие-то или просто отдебажить через Debug.Log. Сложно?

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 17:02
DimaJoke
Friend123 писал(а):
DimaJoke писал(а):Нет, мне не понятно, что он не видит.. но так или иначе я решил эту проблему..

Так если не получается сходу найти в чем проблема - всегда можно расставить брейкпоинты какие-то или просто отдебажить через Debug.Log. Сложно?

Нет, но как это помогло бы?
Я просто в моей консоли вводил "color red" и мне выкидывался лог.

А если ты предлагаешь, что писать лог при выполнении команды, то я пишу консоль, откуда все логи так же отправляются в Debug.

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 18:05
Anonymyx
Нет, но как это помогло бы?

Брэйкпоинты+ F11 - видишь значения всех переменных.

Re: NullReferenceException

СообщениеДобавлено: 08 ноя 2018, 20:39
DimaJoke
Anonymyx писал(а):
Нет, но как это помогло бы?

Брэйкпоинты+ F11 - видишь значения всех переменных.

А в разве в MonoDevelop нельзя просто посмотреть значения?
Или анолагично в VS..
Я когда на с++ писал, использовал VS, там значения отображались..