Menu
CoddyTech

متغيرات تتذكر

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

تستدعي Unity الدالة Update() في كل إطار، ويبدأ كل استدعاء من جديد: فالمتغير المُنشأ داخل إحدى الدوال يُتخلَّص منه عند انتهاء الدالة. لذلك لا يتجاوز هذا العداد الرقم 1 أبدًا:

void Update()
{
    int frames = 0;
    frames++;
}

تضيف frames++ مقدار 1، وهي طريقة مختصرة لكتابة frames += 1. لكن الإطار التالي ينفّذ int frames = 0; مرة أخرى ويبدأ من جديد.

للاحتفاظ بقيمة من إطار إلى الإطار التالي، أنشئ المتغير داخل الصنف ولكن خارج كل الدوال. يُسمّى المتغير الموجود هناك حقلًا: فهو يبقى ما دام الكائن موجودًا، ويمكن لكل دالة في الصنف استخدامه.

int frames = 0;

void Update()
{
    frames++;
}

الآن يواصل frames العد: 1، 2، 3 وما بعدها، بزيادة واحد في كل إطار.

challenge icon

التحدي

سهل

اجعل النبتة تواصل النمو.

  1. انقل السطر int frames = 0; من داخل Update().
  2. ألصقه فوق void Update()، داخل الصنف، لكي يصبح frames حقلًا يحتفظ بعدد مرات النمو.

اضغط على «العب»: ستزداد النبتة طولًا قليلًا مع كل إطار. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class Grower : MonoBehaviour
{
    void Update()
    {
        int frames = 0;
        frames++;
        transform.localScale = new Vector3(1, 1 + frames * 0.01f, 1);
    }
}

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

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