Menu
CoddyTech

שמרו את הריצה הטובה ביותר

חלק מהיחידה ארכיטקטורת משחקים ב-Unity במסלול ה-Unity של Coddy. שיעור 60 מתוך 64.

Arena Survivor הושלם: Enemy מופשט עם שני סוגים, IDamageable עבור כל פגיעה, גלים מ־ScriptableObject, פריטים לאיסוף מאחורי ממשק, HUD שרק מאזין, ולבסוף, שמירת JSON של הריצה הטובה ביותר.

challenge icon

אתגר

בינוני

שומרים את הריצה הטובה ביותר בקובץ best.json.

  1. ב־GameManager.cs, הוסיפו מחלקה [System.Serializable] בשם BestRun עם שני מספרים שלמים ציבוריים: wave ו־kills.
  2. הפעולה Start טוענת אותה מהקובץ best.json שנמצא ב־Application.persistentDataPath, באמצעות JsonUtility, אם הקובץ קיים.
  3. בסיום המשחק, אם הגעתם לגל מתקדם יותר, או לאותו גל עם יותר הריגות, התוצאה הופכת לטובה ביותר ונשמרת; bestText מציג את Best: wave 3, 12 kills.

לחצו על "שחק" ותנו לדמות ליפול פעמיים: התוצאה הטובה ביותר נשמרת. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

using System.IO;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using TMPro;

public class GameManager : MonoBehaviour
{
    [SerializeField] private Hero hero;
    [SerializeField] private WaveSpawner spawner;
    [SerializeField] private GameObject gameOverPanel;
    [SerializeField] private TMP_Text resultText;
    [SerializeField] private TMP_Text bestText;
    [SerializeField] private Button restartButton;

    private int kills;

    void OnEnable()
    {
        hero.Died += GameOver;
        Enemy.Died += CountKill;
    }

    void OnDisable()
    {
        hero.Died -= GameOver;
        Enemy.Died -= CountKill;
    }

    void Start()
    {
        gameOverPanel.SetActive(false);
        restartButton.onClick.AddListener(Restart);
    }

    void CountKill(Enemy enemy)
    {
        kills++;
    }

    void GameOver()
    {
        Time.timeScale = 0f;
        int wave = spawner.Wave;
        resultText.text = "Wave " + wave + ", " + kills + " kills";
        gameOverPanel.SetActive(true);
    }

    void Restart()
    {
        Time.timeScale = 1f;
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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