Menu
CoddyTech

مراجعة: القفزة المزدوجة

جزء من قسم إنشاء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 43 من 60.

في هذا الفصل، حرّكنا CharacterController يدويًا: استخدمنا Move للمشي، واحتفظنا بالجاذبية في حقل، وحسبنا القفزات انطلاقًا من ارتفاعها. يضيف البطل قفزة أخرى في الهواء.

challenge icon

التحدي

متوسط

امنح البطل قفزة وقفزة واحدة في الهواء. حركة المشي مكتوبة.

  1. أولًا، أثناء الوقوف على الأرض: airJumpUsed = false، وتصبح قيمة verticalSpeed أثناء السقوط -2f.
  2. عند Input.GetButtonDown("Jump"): إذا كان البطل على الأرض، فاستخدم verticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);؛ وإلا، إذا كان !airJumpUsed، فاستخدم المعادلة نفسها مع airJumpHeight، ثم عيّن airJumpUsed.
  3. بعد ذلك، أضف gravity * Time.deltaTime إلى verticalSpeed.

اضغط على «العب» ونفّذ قفزة مزدوجة للوصول إلى الحافة. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class Hero : MonoBehaviour
{
    public float speed = 5f;
    public float gravity = -25f;
    public float jumpHeight = 2f;
    public float airJumpHeight = 1.28f;

    CharacterController controller;
    float verticalSpeed;
    bool airJumpUsed;

    void Start()
    {
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        // أعِد الضبط عند ملامسة الأرض، واقفز أو نفّذ قفزة هوائية عند الضغط على Space، ثم أضف تأثير الجاذبية

        Vector3 move = new Vector3(Input.GetAxisRaw("Horizontal"), 0f, Input.GetAxisRaw("Vertical")) * speed;
        move.y = verticalSpeed;
        controller.Move(move * Time.deltaTime);
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس إنشاء ألعاب حقيقية

تدرّب بنفسك: Playground لـ Unity