Menu
CoddyTech

الإطلاق

الدرس 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 وحدات في الثانية.

challenge icon

التحدي

سهل

تظل الكرة فوق المضرب إلى أن يطلقها مفتاح المسافة.

  1. في Ball، أضف bool launched; وpublic void Launch(Vector3 direction): launched = true; وrb.linearVelocity = direction.normalized * speed;
  2. في Update()، أعد التنفيذ إذا أُطلقت الكرة؛ وإلا فضع الكرة عند paddle.position + Vector3.up * 0.5f.
  3. عندما تكون قيمة 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