الإنشاء باستخدام مؤقّت
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 49 من 67.
يحتاج المُولِّد الذي ينشئ شيئًا كل بضع ثوانٍ إلى مؤقّت. 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.
التحدي
متوسطيجب أن يُسقط Dropper صندوقًا كل interval ثانية (يُظهر Inspector القيمة 2): الصندوق الأول بعد ثانيتين من الضغط على Play، ثم صندوق آخر كل ثانيتين.
- أنشئ كل صندوق في موضع أداة الإسقاط، دون أي دوران.
- بعد كل صندوق، سجّل رقمه:
Box 1وBox 2وما إلى ذلك.
اضغط على Play وشاهد الكومة تكبر، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class BoxDropper : MonoBehaviour
{
public GameObject boxPrefab;
public float interval = 1f;
void Update()
{
// كل interval ثانية: أسقط صندوقًا وسجّل "Box 1"، "Box 2"...
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر6الكائنات ومكوّناتها
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة9القوالب والإنشاء
القوالب وInstantiateالإنشاء باستخدام مؤقّتالإنشاء ضمن شبكةقوائم الكائناتالتدميرإنشاء عشوائيمراجعة: الألعاب النارية