Menu
CoddyTech

Cofnij najnowszy

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 66 z 85.

Najnowszy element listy to jej ostatni element, o indeksie Count - 1. Usuń go za pomocą Remove i najpierw sprawdź Count > 0: na pustej liście nie ma ostatniego elementu, a próba jego odczytania zatrzymuje skrypt i powoduje wyjątek ArgumentOutOfRangeException.

if (coins.Count > 0)
{
    GameObject last = coins[coins.Count - 1];
    coins.Remove(last);
    Destroy(last);
}

Usunięcie elementu z listy nie wpływa na obiekt w scenie: ukryj go lub zniszcz samodzielnie.

challenge icon

Wyzwanie

Średni

Użyj spacji, aby usunąć najnowsze pudełko.

  1. W Update(), przy Input.GetKeyDown(KeyCode.Space) i tylko wtedy, gdy boxes.Count > 0, pobierz GameObject newest = boxes[boxes.Count - 1];.
  2. Ukryj je za pomocą newest.SetActive(false); i usuń je za pomocą boxes.Remove(newest);.
  3. Zapisz w logu "Boxes: " + boxes.Count.

Naciśnij „Graj”, kliknij trzy razy, a następnie naciśnij spację: ostatnie pudełko zniknie. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

using System.Collections.Generic;
using UnityEngine;

public class BoxStacker : MonoBehaviour
{
    public GameObject boxPrefab;
    List<GameObject> boxes = new List<GameObject>();

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            Vector3 spot = transform.position + new Vector3(boxes.Count * 1.5f, 0, 0);
            GameObject box = Instantiate(boxPrefab, spot, Quaternion.identity);
            boxes.Add(box);
            Debug.Log("Boxes: " + boxes.Count);
        }

        // Space: ukryj najnowsze pudełko i usuń je z listy
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity