Menu
CoddyTech
flag Ar iconالعربيةdown icon

التنظيف

جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 62 من 67.

challenge icon

التحدي

متوسط

لا تختفي الكتل أبدًا: بعد دقيقة من اللعب، تكون 60 كتلة منها تسقط أسفل الأرضية، وما يزال البرنامج النصي يحرّك كل واحدة منها. احتفظ بكل شيء من الخطوات السابقة، وغيّر الحلقة التي تحرّك الكتل:

  • تكون الكتلة التي تقل قيمة y لها عن -1 أسفل الأرضية. أتلفها، وأزلها من blocks حتى تتوقف الحلقة عن تحريكها.

اضغط على Play، ثم Check.

جرّب بنفسك

using System.Collections.Generic;
using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private float spawnEvery = 1f;
    [SerializeField] private float fallSpeed = 5f;

    private List<GameObject> blocks = new List<GameObject>();
    private float timer;

    void Update()
    {
        Vector3 p = transform.position;
        p.x += Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime;
        p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);
        transform.position = p;

        timer += Time.deltaTime;
        if (timer >= spawnEvery)
        {
            timer = 0f;
            Vector3 spot = new Vector3(Random.Range(-laneEdge, laneEdge), 10f, 0f);
            blocks.Add(Instantiate(blockPrefab, spot, Quaternion.identity));
        }

        foreach (GameObject block in blocks)
        {
            block.transform.position += Vector3.down * fallSpeed * Time.deltaTime;
        }
    }
}

جميع دروس أساسيات البرمجة النصية في Unity