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

أفضل وقت

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

challenge icon

التحدي

متوسط

الخطوة الأخيرة: يحتفظ كل مستوى بأفضل وقت لك. احتفظ بكل شيء من الدروس السابقة. تحتوي واجهة HUD لكل مستوى على BestText في أعلى اليمين، ويضعه المشهد في الحقل الجديد bestText في FinishLine.

في FinishLine (أضف using TMPro;):

  • حقل TMP_Text باسم bestText يحدده Inspector، ووقت الجولة: قيمة float تزداد بمقدار Time.deltaTime في كل إطار.
  • يحفظ كل مستوى أفضل وقت له باستخدام مفتاح PlayerPrefs خاص به: BestTime_ واسم المستوى، مثل BestTime_Level1.
  • في Start، اعرض أفضل وقت محفوظ للمستوى بمنزلة عشرية واحدة، مثل Best: 12.4 s، أو Best: none إذا لم يُسجَّل له وقت بعد.
  • عندما يعبر اللاعب خط النهاية، احفظ وقت الجولة قبل تحميل المستوى التالي إذا لم يكن للمستوى أفضل وقت بعد أو إذا تجاوزت الجولة ذلك الوقت. أما الجولة الأبطأ فلا تغيّر أفضل وقت.

اضغط Play وسجّل وقتًا، ثم حاول تحطيمه، ثم اضغط Check.

جرّب بنفسك

using UnityEngine;
using UnityEngine.SceneManagement;

public class FinishLine : MonoBehaviour
{
    void OnTriggerEnter(Collider other)
    {
        if (other.GetComponent<Player>() == null) return;

        Scene level = SceneManager.GetActiveScene();
        Debug.Log(level.name + " complete!");
        int next = level.buildIndex + 1;
        if (next >= SceneManager.sceneCountInBuildSettings)
        {
            next = 0;
        }
        SceneManager.LoadScene(next);
    }
}

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