@VegaSan

Как сделать главное меню и меню с уровнями в нужной локации?

Ошибка:
MissingReferenceException: The object of type 'LevelController' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEngine.MonoBehaviour.Invoke (System.String methodName, System.Single time) (at <a1ac446df41c4a67becf2f8317dc1792>:0)
LevelController.isEndGame () (at Assets/Scripts/LevelController.cs:35)
NextLevel.OnTriggerEnter2D (UnityEngine.Collider2D collision) (at Assets/Scripts/NextLevel.cs:9)

Я не знаю как это решить, буду благодарен за помощь.
Мой код "LevelController":
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class LevelController : MonoBehaviour
{
    public static LevelController instance = null;
    int sceneIndex;
    int LevelComplete;

    // Start is called before the first frame update
    void Start()
    {
        if (instance == null)
        {
            instance = this;
        }

        sceneIndex = SceneManager.GetActiveScene().buildIndex;
        LevelComplete = PlayerPrefs.GetInt("LevelComplete");
    }

    public void isEndGame()
    {
        if (sceneIndex == 5)
        {
            Invoke ("LoadMainMenu",  1f);
        }
        else
        {
            if (LevelComplete < sceneIndex)
            PlayerPrefs.SetInt("LevelComplete", sceneIndex);
            Invoke ("NextLevel",  1f);
        }
    }

    void NextLevel()
    {
        SceneManager.LoadScene(sceneIndex + 1);
    }

    void LoadMainMenu()
    {
        SceneManager.LoadScene("MainMenu");
    }


}


Мой код "NextLevel":
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NextLevel : MonoBehaviour
{
    private void OnTriggerEnter2D(Collider2D collision)
    {
        LevelController.instance.isEndGame();
    }
}


Также я хотел сделать так, чтобы уровни открывались по порядку и сбрасывались с помощью кнопки Reset и еще чтобы прогресс сохранялся.
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
У вас сцена старая выгрузилась и LevelController с ней же и удалился.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы