أسرع فأسرع
جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 40 من 67.
التحدي
متوسطتجعل كل عملية التقاط النجوم تسقط بسرعة أكبر. أضف [SerializeField] private float speedUp (اضبطه في المشهد على 0.5) وأضِفه إلى fallSpeed في كل مرة يتم فيها التقاط نجمة. لا تغيّر النجمة التي لم يتم التقاطها السرعة. احتفظ بكل ما أضفته في الخطوات السابقة.
جرّب بنفسك
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);
ResetStar();
}
else if (star.position.y < 0f)
{
ResetStar();
}
}
void ResetStar()
{
star.position = new Vector3(Random.Range(-4f, 4f), 6f, 0f);
}
}
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر