المستوى التالي
جزء من قسم إنشاء ألعاب حقيقية في رحلة Unity على Coddy. الدرس 19 من 60.
لكل مشهد في قائمة مشاهد البناء رقم يُسمى فهرس البناء: 0 للأول، و1 للذي يليه، وهكذا. يأخذ LoadScene هذا الرقم بالإضافة إلى اسم، وتُبيّن SceneManager.sceneCountInBuildSettings عدد المشاهد الموجودة في القائمة. عندما تكون المستويات مرتبة في القائمة، يكون فهرس المستوى التالي هو فهرس المشهد النشط زائد 1. يحمّل هذا المخرج المستوى التالي، ويتوقف بعد المستوى الأخير:
void OnTriggerEnter(Collider other)
{
if (!other.CompareTag("Player")) return;
int next = SceneManager.GetActiveScene().buildIndex + 1;
if (next < SceneManager.sceneCountInBuildSettings)
{
SceneManager.LoadScene(next);
}
else
{
Debug.Log("You finished the game!");
}
}مع وجود أربعة مشاهد، تكون الفهارس من 0 إلى 3 وتكون قيمة sceneCountInBuildSettings هي 4، لذا تكون قيمة next في المستوى الأخير 4، أي بعد نهاية القائمة بموضع واحد. لهذا السبب يكون الاختبار next < sceneCountInBuildSettings: لن يحمّل LoadScene(4) أي شيء، وسيُسجّل خطأ Unity Cannot load scene: Invalid scene name (empty string) and invalid build index 4.
يخدم الآن نص برمجي واحد للمخرج جميع المستويات، ولا يسمّي أيٌّ منها مشهدًا بعينه. لإضافة مستوى، أضف مشهده إلى القائمة؛ ولتغيير الترتيب، اسحب المشاهد إلى مواضع مختلفة في القائمة.
التحدي
سهلاجعل كل هدف يفتح المستوى التالي.
- في
Start()، اعرض"Level " + level + " of " + levelsفيlevelText: يمثّلlevelقيمةbuildIndexللمشهد النشط، ويمثّلlevelsالقيمةSceneManager.sceneCountInBuildSettings - 1. - في
OnTriggerEnter، عند دخول Player، حمّلbuildIndex + 1، أو0(القائمة) عندما لا تكون تلك القيمة أقل منsceneCountInBuildSettings.
اضغط «العب» وأكمل المستويات الثلاثة كلها: ستعود القائمة. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
using UnityEngine.SceneManagement;
using TMPro;
public class Goal : MonoBehaviour
{
public TMP_Text levelText;
void Start()
{
// اعرض "Level 2 of 3": رقم هذا المستوى والعدد الإجمالي للمستويات
}
void OnTriggerEnter(Collider other)
{
// وصل اللاعب إلى الهدف: حمّل المستوى التالي، أو القائمة بعد المستوى الأخير
}
}
جميع دروس إنشاء ألعاب حقيقية
4المشاهد والمستويات
تحميل مشهدإعادة تشغيل المستوىالمستوى التاليالاحتفاظ بالبيانات بين المشاهدمراجعة: اختيار المستوى10مشروع: لعبة منصات ثلاثية الأبعاد
المسارمنصات متحركة2الأزرار والشاشات
الأزرار وonClickالتعبيرات Lambdaالربط في Inspectorتشغيل اللوحات وإيقافهاأشرطة الصحةمراجعة: متجر الترقيات5الحفظ باستخدام PlayerPrefs
حفظ رقمالتحميل بقيمة افتراضيةأعلى نتيجةحفظ الإعداداتمراجعة: العملات في البنك6مشروع: عدّاء لا نهاية له
ثلاثة مساراتعقبات أمامكتدرّب بنفسك: Playground لـ Unity