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

التحدي

متوسط

اجعل Space يستعيد أحدث صندوق.

  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.

اضغط على «العب»، وانقر ثلاث مرات، ثم اضغط على Space: سيختفي الصندوق الأخير. ثم اضغط على «تحقق».

جرّب بنفسك

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

تدرّب بنفسك: Playground لـ Unity