الإطلاق
الدرس 2 من 19 في دورة لعبة Unity: كاسر الطوب على Coddy.
تنتظر الكرة على المضرب إلى أن يطلقها اللاعب. وحتى ذلك الحين، تضعها Update() أعلى المضرب في كل إطار، لذا تتحرك أينما تحرك المضرب، ويتذكر bool ما إذا كانت قد انطلقت:
void Update()
{
if (launched) return;
transform.position = paddle.position + Vector3.up * 0.5f;
}ليس لجسم الكرة الصلب جاذبية، لذا فإن تعيين سرعة مرة واحدة يجعلها تواصل الطيران في خط مستقيم. تكون wasPressedThisFrame صحيحة فقط في الإطار الذي يُضغط فيه المفتاح، لذا اقرأها في Update(). للطيران بسرعة دقيقة في أي اتجاه، اجعل طول الاتجاه وحدة واحدة باستخدام .normalized، ثم اضربه: تجعل new Vector3(3f, 4f, 0f).normalized * 10f الكرة تطير بسرعة 10 وحدات في الثانية.
التحدي
سهلتظل الكرة فوق المضرب إلى أن يطلقها مفتاح المسافة.
- في
Ball، أضفbool launched;وpublic void Launch(Vector3 direction):launched = true;وrb.linearVelocity = direction.normalized * speed; - في
Update()، أعد التنفيذ إذا أُطلقت الكرة؛ وإلا فضع الكرة عندpaddle.position + Vector3.up * 0.5f. - عندما تكون قيمة
wasPressedThisFrameلمفتاح المسافة صحيحة، استدعِLaunch(new Vector3(0.3f, 1f, 0f)).
اضغط على «العب»، وحرّك المضرب، ثم اضغط على مفتاح المسافة: ستطير الكرة إلى الأعلى وتتوقف عند أول جدار (سيأتي الارتداد لاحقًا). ثم اضغط على «تحقق».
جرّب بنفسك
using UnityEngine;
using UnityEngine.InputSystem;
public class Ball : MonoBehaviour
{
public Transform paddle;
public float speed = 9f;
Rigidbody rb;
void Awake()
{
rb = GetComponent<Rigidbody>();
}
// التالي: تبقى الكرة فوق المضرب حتى يطلقها مفتاح Space.
}
جميع دروس لعبة Unity: كاسر الطوب
تدرّب بنفسك: Playground لـ Unity