Menu
CoddyTech

En Yeniyi Geri Alma

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 66 / 85.

Bir listenin en yeni öğesi, Count - 1 indeksindeki son öğedir. Remove ile kaldır ve önce Count > 0 koşulunu kontrol et: liste boşsa son öğe yoktur ve bu öğeyi okumak betiği ArgumentOutOfRangeException hatasıyla durdurur.

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

Listeden bir öğeyi kaldırmak sahnedeki nesneyi etkilemez: onu kendin gizle veya yok et.

challenge icon

Görev

Orta

Boşluk tuşunun en son kutuyu geri almasını sağla.

  1. Update() içinde, Input.GetKeyDown(KeyCode.Space) olduğunda ve yalnızca boxes.Count > 0 ise GameObject newest = boxes[boxes.Count - 1]; değerini al.
  2. newest.SetActive(false); ile gizle ve boxes.Remove(newest); ile listeden çıkar.
  3. "Boxes: " + boxes.Count ifadesini günlüğe yazdır.

“Oyna” düğmesine bas, üç kez tıkla, ardından Boşluk tuşuna bas: son kutu kaybolur. Sonra “Kontrol et” düğmesine bas.

Kendin dene

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: en son eklenen kutuyu gizle ve listeden çıkar
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground