Menu
CoddyTech

הסרת האחרון שנוצר

חלק מהיחידה יסודות הסקריפטים ב-Unity במסלול ה-Unity של Coddy. שיעור 66 מתוך 85.

הפריט החדש ביותר ברשימה הוא האחרון בה, באינדקס Count - 1. הוצא אותו באמצעות Remove, ובדוק קודם אם Count > 0: ברשימה ריקה אין פריט אחרון, וניסיון לקרוא פריט כזה עוצר את הסקריפט עם ArgumentOutOfRangeException.

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

הסרת פריט מהרשימה אינה משפיעה על האובייקט שבסצנה: הסתר או השמד אותו בעצמך.

challenge icon

אתגר

בינוני

גרום למקש הרווח להחזיר את הקופסה החדשה ביותר.

  1. בתוך Update(), בעת Input.GetKeyDown(KeyCode.Space) ורק כאשר boxes.Count > 0, קבל את GameObject newest = boxes[boxes.Count - 1];.
  2. הסתר אותה באמצעות newest.SetActive(false); והסר אותה באמצעות boxes.Remove(newest);.
  3. רשום ביומן את "Boxes: " + boxes.Count.

לחץ על "שחק", לחץ שלוש פעמים ואז לחץ על מקש הרווח: הקופסה האחרונה נעלמת. לאחר מכן לחץ על "בדיקה".

נסו בעצמכם

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: הסתר את הקופסה החדשה ביותר והסר אותה מהרשימה
    }
}

כל השיעורים ביחידה יסודות הסקריפטים ב-Unity

תרגלו בעצמכם: Unity אונליין