نجمة تلو الأخرى
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 39 من 67.
التحدي
متوسطأرسل نجمة جديدة بعد كل التقاط وكل إخفاق. تُفقد النجمة عندما تنخفض قيمة y الخاصة بها إلى أقل من 0. سواء تم التقاطها أم فقدانها، تبدأ النجمة من جديد عند y = 6 وz = 0، وبقيمة x عشوائية بين -4 و4. تُرجع Random.Range(min, max) قيمة عائمة عشوائية بين min وmax، لذا تختار Random.Range(-4f, 4f) قيمة x هذه.
تُعيد الحالتان تشغيل النجمة بالطريقة نفسها، لذا اكتب ذلك مرة واحدة في دالة، void ResetStar()، واستدعها من كلتيهما. لا تُحتسب نقاط عند الإخفاق. احتفظ بكل ما أُنجز في الخطوات السابقة.
جرّب بنفسك
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أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر