مراجعة: القفزة المزدوجة
جزء من قسم إنشاء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 43 من 60.
في هذا الفصل، حرّكنا CharacterController يدويًا: استخدمنا Move للمشي، واحتفظنا بالجاذبية في حقل، وحسبنا القفزات انطلاقًا من ارتفاعها. يضيف البطل قفزة أخرى في الهواء.
التحدي
متوسطامنح البطل قفزة وقفزة واحدة في الهواء. حركة المشي مكتوبة.
- أولًا، أثناء الوقوف على الأرض:
airJumpUsed = false، وتصبح قيمةverticalSpeedأثناء السقوط-2f. - عند
Input.GetButtonDown("Jump"): إذا كان البطل على الأرض، فاستخدمverticalSpeed = Mathf.Sqrt(jumpHeight * -2f * gravity);؛ وإلا، إذا كان!airJumpUsed، فاستخدم المعادلة نفسها معairJumpHeight، ثم عيّنairJumpUsed. - بعد ذلك، أضف
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);
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس إنشاء ألعاب حقيقية
4المشاهد والمستويات
تحميل مشهدإعادة تشغيل المستوىالمستوى التاليالاحتفاظ بالبيانات بين المشاهدمراجعة: اختيار المستوى10مشروع: لعبة منصات ثلاثية الأبعاد
المسارمنصات متحركة2الأزرار والشاشات
الأزرار وonClickالتعبيرات Lambdaالربط في Inspectorتشغيل اللوحات وإيقافهاأشرطة الصحةمراجعة: متجر الترقيات5الحفظ باستخدام PlayerPrefs
حفظ رقمالتحميل بقيمة افتراضيةأعلى نتيجةحفظ الإعداداتمراجعة: العملات في البنك8متحكّم الشخصية
CharacterController.Moveتطبيق الجاذبية يدويًاالقفزدفع الأشياءالتحرّك في اتجاه النظرمراجعة: القفزة المزدوجة6مشروع: عدّاء لا نهاية له
ثلاثة مساراتعقبات أمامكتدرّب بنفسك: Playground لـ Unity