Menu
CoddyTech

الإنشاء بمؤقّت

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

يحتاج المُنشِئ الذي ينشئ شيئًا كل بضع ثوانٍ إلى مؤقّت. يمثّل Time.deltaTime الوقت الذي استغرقه الإطار الأخير، لذا فإن جمعه في حقل عند كل استدعاء لـ Update() يعطي عدد الثواني التي مرّت. عندما يصل المجموع إلى الفاصل الزمني، أنشئ العنصر واطرح الفاصل الزمني من المجموع.

تقذف هذه النافورة قطرة ماء كل نصف ثانية:

public GameObject dropPrefab;
public float interval = 0.5f;
float timer;

void Update()
{
    timer += Time.deltaTime;
    if (timer >= interval)
    {
        Instantiate(dropPrefab, transform.position, Quaternion.identity);
        timer -= interval;
    }
}

تحافظ timer -= interval على الوقت المتبقي: إذا انتهى الإطار عند 0.51 ثانية، يبدأ احتساب نصف الثانية التالية من 0.01، وتبقى القطرات منتظمة الإيقاع. أما timer = 0 فسيهمل الوقت المتبقي، لذا ستتأخر كل قطرة قليلًا وسيتراكم التأخير على مدى لعبة طويلة. المتغير timer خاص، لأنه لا حاجة لأحد إلى ضبطه في نافذة Inspector.

challenge icon

التحدي

متوسط

أسقط صندوقًا كل interval ثانية (2 في Inspector).

  1. أضف الحقلين float timer; وint count;. في Update()، أضف Time.deltaTime إلى timer.
  2. عندما يصبح timer >= interval، استدعِ Instantiate(boxPrefab, transform.position, Quaternion.identity); واطرح interval من timer.
  3. ثم أضف 1 إلى count وسجّل "Box " + count.

اضغط «العب»: سيسقط صندوق كل ثانيتين، وستعرض Console العدد Box 1، ثم Box 2. ثم اضغط «تحقق».

جرّب بنفسك

using UnityEngine;

public class BoxDropper : MonoBehaviour
{
    public GameObject boxPrefab;
    public float interval = 1f;

    void Update()
    {
        // كل interval ثانية: أسقط صندوقًا وسجّل "Box 1"، "Box 2"...
    }
}

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

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