Menu
CoddyTech

השלב הבא

חלק מהיחידה בניית משחקים אמיתיים במסלול ה-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.

עכשיו סקריפט יציאה אחד משמש לכל השלבים, ואף אחד מהם לא מציין שם של סצנה. כדי להוסיף שלב, מוסיפים את הסצנה שלו לרשימה; כדי לשנות את הסדר, גוררים את הסצנות למקומות אחרים ברשימה.

challenge icon

אתגר

קל

גרום לכל מטרה לפתוח את השלב הבא.

  1. ב־Start(), הצג את "Level " + level + " of " + levels בתוך levelText: level הוא ה־buildIndex של הסצנה הפעילה, ו־levels הוא SceneManager.sceneCountInBuildSettings - 1.
  2. ב־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)
    {
        // השחקן הגיע ליעד: טען את השלב הבא, או את התפריט לאחר השלב האחרון
    }
}

כל השיעורים ביחידה בניית משחקים אמיתיים

תרגלו בעצמכם: Unity אונליין