Menu
CoddyTech

المصفوفات

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

تحتوي المصفوفة على قيم عديدة من نوع واحد مرتبة في صف. يأتي نوعها متبوعًا بأقواس مربعة، وتوضع قيمها بين أقواس معقوفة:

int[] scores = { 10, 25, 7 };

لكل قيمة فهرس، أي موضعها في الصف، ويبدأ العد من 0: القيمة scores[0] هي 10، وscores[1] هي 25، وscores[2] هي 7. يعبّر scores.Length عن عدد القيم، وهو 3 هنا. أما طلب scores[3] فيوقف البرنامج النصي مع ظهور IndexOutOfRangeException: فلا توجد قيمة رابعة.

تمر حلقة for حتى Length على كل قيمة، مهما كان محتوى المصفوفة:

for (int i = 0; i < scores.Length; i++)
{
    Debug.Log("Score " + i + ": " + scores[i]);
}

عندما لا تحتاج إلى الفهرس، تكون foreach أقصر: تنفّذ foreach (int s in scores) { Debug.Log(s); } مرة واحدة لكل قيمة، بالترتيب.

challenge icon

التحدي

متوسط

اجعل أفق المدينة يتكوّن من 7 أبراج باستخدام مصفوفة وحلقة.

  1. أضف 6f و2f إلى نهاية heights: { 2f, 5f, 3f, 1f, 4f, 6f, 2f }.
  2. استبدل سطر PlaceTower بـ for (int i = 0; i < heights.Length; i++).
  3. داخلها، استدعِ PlaceTower(i * 1.5f - 4.5f, heights[i]);.

اضغط «العب»: ستة أبراج بارتفاعات مختلفة تقف في صف. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;

public class Skyline : MonoBehaviour
{
    void Start()
    {
        float[] heights = { 2f, 5f, 3f, 1f, 4f };

        // ضع برجًا واحدًا لكل ارتفاع.
        PlaceTower(-4.5f, heights[0]);
    }

    void PlaceTower(float x, float height)
    {
        GameObject tower = GameObject.CreatePrimitive(PrimitiveType.Cube);
        tower.name = "Tower";
        tower.transform.position = new Vector3(x, height / 2, 0);
        tower.transform.localScale = new Vector3(1, height, 1);
        tower.GetComponent<Renderer>().material.color = new Color(0.35f, 0.45f, 0.7f);
    }
}

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

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