نجمة تلو الأخرى
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 53 من 85.
التحدي
متوسطأرسل نجمة جديدة بعد كل التقاط وكل إخفاق.
- اكتب
void ResetStar()التي تضبطstar.position = new Vector3(Random.Range(-4f, 4f), 6f, 0f);، واستدعها عند الالتقاط بدلًا من السطر القديم. - بعد عبارة if الخاصة بالالتقاط، أضف
else if (star.position.y < 0f)التي تستدعيResetStar();. لا تُنفَّذ عبارةelse ifإلا عندما تكون عبارة if التي تسبقها خاطئة.
اضغط «العب»: ستسقط كل نجمة جديدة عند قيمة x جديدة. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class Catcher : MonoBehaviour
{
[SerializeField] private float speed = 6f;
[SerializeField] private Transform star;
[SerializeField] private float fallSpeed = 3f;
private int score;
void Update()
{
float x = transform.position.x;
if (Input.GetKey(KeyCode.RightArrow))
{
x += speed * Time.deltaTime;
}
if (Input.GetKey(KeyCode.LeftArrow))
{
x -= speed * Time.deltaTime;
}
x = Mathf.Clamp(x, -4f, 4f);
transform.position = new Vector3(x, transform.position.y, transform.position.z);
star.position += Vector3.down * fallSpeed * Time.deltaTime;
if (Vector3.Distance(transform.position, star.position) < 1f)
{
score++;
Debug.Log("Caught! Score: " + score);
star.position = new Vector3(star.position.x, 6f, star.position.z);
}
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أساسيات C# في Unity
مرحبًا يا Unityالمتغيراتالأعداد العشرية تحتاج إلى fالنص في وحدة التحكممتغيرات تتذكرإذا وإلامقارنة الأعدادمراجعة: جامع العملات7الحلقات والدوال
التكرار باستخدام forحلقات داخل حلقاتكتابة دالةدوال تُعيد إجابةالمصفوفاتمراجعة: السُّلّم5المتجهات
جمع المتجهاتالاتجاهاتالفضاء المحلي والعالميالسرعة القُطريةالمسافة بين الأشياءVector3 بنية Structمراجعة: قيادة الطائرة المسيّرة8كائنات اللعبة والمكوّنات
المراجع في Inspectorالحصول على مكوّنالمكوّنات المفقودةإضافة مكوّنRequireComponentالإظهار والإخفاءمراجعة: مفتاح الإضاءة6التحويلات والتسلسل الهرمي
الآباء والأبناءارفع العلمالتحجيمانظر إلى الأشياءتحرّك نحو نقطةمراجعة: القمر في مدارهتدرّب بنفسك: Playground لـ Unity