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

Ошибка при вызове статического метода из публичного класса

СообщениеДобавлено: 13 июн 2018, 20:39
Hasuni
Добрый вечер, уважаемые знатоки!
-.- Уже долго-долго пытаюсь понять, что не так...

При срабатывании триггера должно запуститься:
Синтаксис:
Используется csharp
DialogueTrigger tr = this.GetComponentInParent<DialogueTrigger> ();
      Debug.Log (tr.fileName); //Тут окей
      if(tr != null && tr.fileName != string.Empty)
      {
       DialogueManager.GetInternal.DialogueStart(tr.fileName); //Ошибка тут =(
      }

Триггер срабатывает, tr.fileName выводится, но насчет DialogueManager.GetInternal.DialogueStart(tr.fileName); пишет следующую ошибку:
NullReferenceException: Object reference not set to an instance of an object

Кусочек из класса DialogueManager:

Синтаксис:
Используется csharp
private static DialogueManager _internal;

public void DialogueStart(string name)
    {
  if(name == string.Empty) return;
  fileName = name;
  Load();
    }

    public static DialogueManager GetInternal
    {
  get{ return _internal; }
    }
 


Спасите-помогите Т.т

Re: Ошибка при вызове статического метода из публичного класса

СообщениеДобавлено: 13 июн 2018, 20:47
1max1
Ну здрасте, а где ссылка на экземпляр _internal?
_internal = new DialogueManager();
или же в Awake или конструкторе, если это монобех
_internal = this;

Re: Ошибка при вызове статического метода из публичного класса

СообщениеДобавлено: 13 июн 2018, 20:52
Hasuni
В DialogueManager :

Синтаксис:
Используется csharp
void Awake()
    {
  _internal = this;
  button.gameObject.SetActive(false);
  scrollRect.gameObject.SetActive(false);
    }

Re: Ошибка при вызове статического метода из публичного класса

СообщениеДобавлено: 13 июн 2018, 21:03
Hasuni
А, все, нашла ошибку)

Re: Ошибка при вызове статического метода из публичного класса

СообщениеДобавлено: 13 июн 2018, 21:05
1max1
Надеюсь что твой монобех висит на какой-то пустышке в сцене в тот момент, когда вызывается метод, еще хотелось бы знать не причастен ли метод Load();
Еще возможно теоретически, хотя и маловероятно, что метод вызывается еще до срабатывания метода авейк в классе.

пс, мои поздравления)