Воскресенье, 05 Февраля 2023, 01:41

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 7 из 7
  • «
  • 1
  • 2
  • 5
  • 6
  • 7
Форум игроделов » Записи участника » ArtemS [122]
Результаты поиска
ArtemSДата: Понедельник, 20 Марта 2017, 18:31 | Сообщение # 121 | Тема: Ошибка NullReferenceException
почетный гость
Сейчас нет на сайте
Цитата Nordicus666 ()
Reference - ссылка, у тебя в методе OnDestroy, когда ты пытаешься взаимодействовать с gameover (gameover.showbuttons) выходит так, что обращаешься к переменной с null внутри (исходя из текста ошибки), следовательно, когда ты создаешь переменную и запихиваешь в нее FindObjectOfType<GameOverScript>(), то этот findobject ничего не возвращает, следовательно он ничего не находит
вывод: FindObjectOfType<GameOverScript>() не находит GameOverScript, ничего не возвращает, в переменной null, ты пытаешься с ней взаимодействовать, вылетает ошибка.


Так получается у меня кнопки удаляются, а потом при смерти появляются.

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

/// <summary>
/// Start or quit the game
/// </summary>
public class GameOverScript : MonoBehaviour
{
private Button[] buttons;

void Awake()
{
// Get the buttons
buttons = GetComponentsInChildren<Button>();

// Disable them
HideButtons();
}

public void HideButtons()
{
foreach (var b in buttons)
{
b.gameObject.SetActive(false);
}
}

public void ShowButtons()
{
foreach (var b in buttons)
{
b.gameObject.SetActive(true);
}
}

public void ExitToMenu()
{
// Reload the level
Application.LoadLevel("Menu");

}

public void RestartGame()
{
// Reload the level
Application.LoadLevel("Stage1");
}
}


Получается он не находит нечего потому, что у меня HideButton ?
Как можно сделать так , чтобы он не писал мне эту ошибку, подскажи пожалуйста если можешь)


хуяк, хуяк и в продакшн
ArtemSДата: Понедельник, 20 Марта 2017, 17:51 | Сообщение # 122 | Тема: Ошибка NullReferenceException
почетный гость
Сейчас нет на сайте
В консоли движка выводится ошибка
"NullReferenceException: Object reference not set to an instance of an object PlayerScript.OnDestroy () (at Assets/Scripts/PlayerScript.cs:112)"

в скрипте прописано

void OnDestroy()
{
// Game Over.
var gameOver = FindObjectOfType<GameOverScript>();
gameOver.ShowButtons();
}


ошибок никаких нет. Единственное в скрипте <GameOverScript> подчеркнуто

Application.LoadLevel("Menu");

сказано что устарел метод, надо юзать другой, но у меня почему-то он не работает. Предпологаю, что у меня 5,5,1f, а новый метод начал работать лишь в 5,5,3

Так вот и вопрос, неужели первая ошибка из-за этого или есть какая-то ошибка в синтаксисе. все работает отлично, просто хочу разобраться что за хрень


хуяк, хуяк и в продакшн
Форум игроделов » Записи участника » ArtemS [122]
  • Страница 7 из 7
  • «
  • 1
  • 2
  • 5
  • 6
  • 7
Поиск:

Все права сохранены. GcUp.ru © 2008-2023 Рейтинг