متغيرات تتذكر
جزء من قسم أساسيات البرمجة النصية في 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 وما بعدها، بزيادة واحد في كل إطار.
التحدي
سهلاجعل النبتة تواصل النمو.
- انقل السطر
int frames = 0;من داخلUpdate(). - ألصقه فوق
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
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity