Menu
CoddyTech
flag Ar iconالعربيةdown icon

سباق مع الزمن

جزء من قسم بناء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 55 من 56.

سباق ضد الزمن عبر حديقة. يبدأ العداء من أحد الطرفين، والوقت المتاح عشر ثوانٍ، وعليه الوصول إلى الهدف الأبيض في الطرف البعيد، مرورًا حول سياج نباتي، قبل نفاد الوقت. تمنح الساعات الذهبية على الطريق بضع ثوانٍ إضافية في كل مرة. عندما يوشك الوقت على النفاد، تتحول الساعة إلى اللون الأحمر؛ وعندما ينفد، يبدأ المسار من جديد. إذا وصلت إلى الهدف في الوقت المحدد، تنتقل اللعبة إلى مشهد Finish.

اكتب نصين برمجيين: Runner على العداء، وهو CharacterController، وRace على كائن Race.

challenge icon

التحدي

صعب

يحتوي البناء على مشهدين، Track وFinish. في المسار، تحمل الساعات الوسم Clock، ويحمل الهدف الوسم Goal؛ وكلاهما من نوع المحفّزات.

تُعيّن نافذة Inspector لـRunner القيم speed (6)، وgravity (-9.81)، وrace (سكربت Race).

  • يشغّل إجراء Move في المشروع العداء بسرعة speed وحدة في الثانية: يمينًا ويسارًا على طول المحور x، وأعلى وأسفل على طول المحور z. يسقط بفعل gravity ولا يتحرك إلا باستخدام controller.Move، لذا يوقفه السياج.
  • يستهلك الاصطدام بساعةٍ إياها ويمنح السباق وقتها الإضافي. وينهي الاصطدام بالهدف السباق.

تُعيّن نافذة Inspector لـRace القيم timeLimit (10)، وbonus (3)، وtimeText.

  • يبدأ الوقت المتبقي عند timeLimit وينقص بمقدار الوقت الفعلي المنقضي. يعرض timeText الوقت بمنزلة عشرية واحدة، مثل Time: 7.4، باللون الأبيض، وباللون الأحمر (Color.red) عندما يتبقى أقل من 3 ثوانٍ.
  • تضيف كل ساعة bonus ثانية.
  • عندما يصل الوقت إلى 0، سجّل Time's up! وحمّل المسار مجددًا من البداية.
  • عند إنهاء السباق قبل نفاد الوقت، سجّل الوقت المتبقي، مثل Finished with 4.2 s left، وحمّل مشهد Finish.

اضغط تشغيل وتغلّب على الوقت، ثم تحقّق.

جرّب بنفسك

using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;

public class Race : MonoBehaviour
{
    public float timeLimit = 10f;
    public float bonus = 3f;
    public TMP_Text timeText;
}
quiz iconاختبر نفسك

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

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