أفضل وقت
جزء من قسم بناء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 53 من 56.
التحدي
متوسطالخطوة الأخيرة: يحتفظ كل مستوى بأفضل وقت لك. احتفظ بكل شيء من الدروس السابقة. تحتوي واجهة 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);
}
}
جميع دروس بناء ألعاب حقيقية
4المشاهد والمستويات
تحميل مشهدإعادة تشغيل المستوىالمستوى التاليالاحتفاظ بالبيانات بين المشاهدمراجعة: اختيار المستوى10مشروع: لعبة منصات ثلاثية الأبعاد
المسارالمنصات المتحركة2الأزرار والشاشات
الأزرار وonClickالتعبيرات Lambdaالربط في Inspectorتشغيل اللوحات وإيقافهاأشرطة الصحةمراجعة: متجر الترقيات5الحفظ باستخدام PlayerPrefs
حفظ رقمالتحميل بقيمة افتراضيةأعلى نتيجةحفظ الإعداداتمراجعة: العملات في البنك6مشروع: عدّاء بلا نهاية
ثلاثة مساراتعوائق أمامك