Menu
CoddyTech

הניקוד

שיעור 11 מתוך 14 בקורס משחק Unity: נחש בתלת־ממד של Coddy.

הניקוד ב-GameManager עולה, אבל אף אחד לא יכול לראות אותו. טקסט של TextMeshPro בפינה השמאלית העליונה מציג אותו: שדה TMP_Text שמוגדר ב-Inspector, והערך של text נכתב מתוך הקוד.

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

public void Buy(int price)
{
    coins -= price;
    coinsText.text = "Coins: " + coins;
}

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

challenge icon

אתגר

בינוני
  1. ב־GameManager, הוסיפו using TMPro; ואת public TMP_Text scoreText;. בסצנה מוגדר לו הערך ScoreText, בפינה השמאלית העליונה.
  2. ב־Start(), הציגו Score: 0.
  3. ב־Eat(), הציגו את הניקוד החדש, למשל Score: 3 אחרי המזון השלישי.

לחצו על Play ואכלו, ואז לחצו על Check.

נסו בעצמכם

using System.Collections.Generic;
using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    public Snake snake;
    public GameObject foodPrefab;
    private Transform food;
    private int score;

    void Awake()
    {
        Instance = this;
    }

    void Start()
    {
        food = Instantiate(foodPrefab).transform;
        MoveFood();
    }

    public bool IsFood(Vector3 cell)
    {
        return cell == food.position;
    }

    public void Eat()
    {
        score++;
        MoveFood();
    }

    void MoveFood()
    {
        List<Vector3> free = new List<Vector3>();
        for (int x = -snake.edge; x <= snake.edge; x++)
        {
            for (int z = -snake.edge; z <= snake.edge; z++)
            {
                Vector3 cell = new Vector3(x, 0f, z);
                if (!snake.Occupies(cell))
                {
                    free.Add(cell);
                }
            }
        }
        food.position = free[Random.Range(0, free.Count)];
    }
}
quiz iconבחנו את עצמכם

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

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