@Gregory256

Как реализовать повторное удаление объекта?

public Transform currentPoint;
    public Transform[] points;
    public TextMeshProUGUI levelText;
    public float speed;
    public int index = 1;
    public float levelPosY;
    public static bool isLevelEnd = false;
    public static bool isLevelReloaded = false;
    private readonly List<GameObject> levels = new List<GameObject>();
    public static LevelManager Instance { get; private set; }

private void Start()
    {
        StartCoroutine(InstantiateLevel(index, 0));
    }
    public void Dublicate()
    {
        if (!Instance)
        {
            Instance = this;
        }
        else
        {
            DestroyImmediate(gameObject);
            Instance = this;
        }
    }
    private void FixedUpdate()
    {
        if (isLevelEnd)
        {
            index++;
            levelPosY += 30f;
            StartCoroutine(InstantiateLevel(index, 1f));
            Invoke("DestroyLevel", 3);
        }
        if (isLevelReloaded)
        {
            ReloadLevel();
            StartCoroutine(InstantiateLevel(index, 1f));
            isLevelReloaded = false;
        }
    }
    public IEnumerator InstantiateLevel(int index, float delay)
    {
        yield return new WaitForSeconds(delay);
        Vector3 position = new Vector3(0f, 0f, 0f);
        Addressables.InstantiateAsync(($"Level {index}"), position, Quaternion.identity, null, true).Completed +=
            delegate (AsyncOperationHandle<GameObject> handle)
            {
                levels.Add(handle.Result);
            };
    }
    public void DestroyLevel()
    {
        Addressables.ReleaseInstance(levels[index - 1]);
    }
    public void ReloadLevel()
    {
        Destroy(levels[index]);
    }

При выполнении блока isLevelReloaded при первой загрузке все работает, однако при повторных загрузках предыдущие уровни не удаляются и наслаиваются друг на друга, в чем может быть проблема?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

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