GetComponent не работает, без ошибок, не вылетает - PullRequest
1 голос
/ 10 марта 2020

У меня проблема при вызове GetComponent. Вот код, где он называется:

switch (JsonUtility.FromJson<InBaseInstruction>(message).type) {
    case InInstructionType.Auth: {
        InAuthInstruction auth = JsonUtility.FromJson<InAuthInstruction>(message);

        // Testing stuff
        Debug.Log("Hello ?");

        if (gameObject.GetComponent<AuthController>() == null)
            Debug.Log("Auth Controller null");
        else
            Debug.Log("Not null");

        Debug.Log("Auth Result : " + auth.result.ToString());
        // Done testing

        GetComponent<AuthController>().AuthResultHandler(auth.result);
        return;
    }
}

Я дважды проверил, что AuthController был на том же GameObject, это так.
Я пробовал проверку на ноль (см. Выше), ни один из двух Журналы отображаются в консоли.
Единственное, что я вижу в своей консоли, это «Привет?».
Я пытался добавить Debug.Log после всего переключателя (изменив возврат; на разрыв;) на посмотрим, вызвал ли переключатель это, это не так. Журнал не появляется после «Hello?».
Все компилируется просто отлично.

И это главная проблема, GetComponent вообще не выдает ошибку, код просто перестает работать оттуда. Больше ничего не происходит.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 10 марта 2020

Ваш gameObject, вероятно, null, и исключение, генерируемое этим фрагментом кода, вероятно, съедено оболочкой async / coroutine / lambda / catch(Exception).

Сделайте это для дальнейшей отладки.

try {
    switch (JsonUtility.FromJson<InBaseInstruction>(message).type) {
    case InInstructionType.Auth: {
        InAuthInstruction auth = JsonUtility.FromJson<InAuthInstruction>(message);

        // Testing stuff
        Debug.Log("Hello ?");

        if (gameObject.GetComponent<AuthController>() == null)
            Debug.Log("Auth Controller null");
        else
            Debug.Log("Not null");

        Debug.Log("Auth Result : " + auth.result.ToString());
        // Done testing

        GetComponent<AuthController>().AuthResultHandler(auth.result);
        return;
        }
    }
} catch (Exception e) {
    Debug.LogError(e);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...