العدّاء
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 75 من 85.
يبني هذا الفصل لعبة صغيرة بعنوان «تجنّب الكتل». تقود عدّاءً على طول مسار بينما تسقط الكتل من السماء، وتنهي لمسة واحدة الجولة. تتكوّن اللعبة كلها من نص برمجي واحد، Runner، يكتسب ميزة في كل درس: التوجيه، والكتل الساقطة، وإزالتها، والاصطدام، والنتيجة.
الميزة الأولى هي التوجيه الذي يبقيك على المسار، باستخدام Mathf.Clamp(value, min, max) من لعبة «التقط النجمة»: فهي تُرجع min عندما تكون القيمة أقل من النطاق، وmax عندما تكون أعلى منه، والقيمة نفسها فيما عدا ذلك. موضع استخدام التقييد مهم. يمتلئ مقياس الشحن هذا أثناء الضغط على مفتاح المسافة، ويفرغ عند عدم الضغط عليه، ولا يخرج أبدًا عن النطاق من 0 إلى 10:
[SerializeField] private float charge = 0f;
void Update()
{
if (Input.GetKey(KeyCode.Space))
{
charge += 4f * Time.deltaTime;
}
else
{
charge -= 2f * Time.deltaTime;
}
charge = Mathf.Clamp(charge, 0f, 10f);
transform.localScale = new Vector3(0.5f, charge, 0.5f);
}يأتي التقييد بعد التغيير. فإذا قيّدت القيمة أولًا، فقد تنتهي الإطار متجاوزةً الحد بخطوة واحدة، وسيُرسم الشريط انطلاقًا من تلك القيمة. كذلك تُرجع Mathf.Clamp رقمًا جديدًا بدلًا من تغيير المتغير الذي تمرّره إليها، لذا أسند النتيجة إلى المتغير مجددًا.
التحدي
متوسطابدأ لعبة Dodge the Blocks: وجّه العداء على طول مساره.
- في
Update()، انسخtransform.positionإلىVector3 p، وأضفInput.GetAxisRaw("Horizontal") * speed * Time.deltaTimeإلىp.x. يحرك المحور الخام العداء بالسرعة القصوى فورًا. - عيّن
p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);، ثمtransform.position = p;.
اضغط على «العب»، ثم انقر على اللعبة واركض إلى كلا الطرفين: سيتوقف العداء عند الحافتين. ثم اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
public class Runner : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private float laneEdge = 4f;
void Update()
{
// تحرّك على طول المحور x باستخدام مفاتيح الأسهم، ثم أبقِ x داخل المسار
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity