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: " + score.

לחצו על "שחק" ואכלו: בפינה השמאלית העליונה נספרים Score: 1, Score: 2. לאחר מכן לחצו על "בדיקה".

נסו בעצמכם

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)];
    }
}

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

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