النقاط والأرواح
الدرس 9 من 19 في دورة لعبة Unity: كاسر الطوب على Coddy.
يجب أن تظهر النتيجة والأرواح على الشاشة. يحتوي المشهد الآن على Canvas مع عنصرَي نص من TextMeshPro في الأعلى، وهما ScoreText وLivesText، ويحتفظ GameManager بهما في حقول TMP_Text من مساحة الأسماء TMPro.
تُخزَّن الأرقام في حقول GameManager، ولا تعرض النصوص سوى قيمها. تعيد إحدى الطرق كتابة النصين من الحقول، وتستدعيها كل طريقة تغيّر رقمًا، وكذلك Start()، كي يعرض الإطار الأول القيم الحقيقية. مثال على عدّاد العملات في متجر:
public TMP_Text coinsText;
int coins;
public void AddCoins(int amount)
{
coins += amount;
ShowCoins();
}
void ShowCoins()
{
coinsText.text = "Coins: " + coins;
}لا يتغير النص إلا عندما يتغير الرقم. ستبدو إعادة كتابته في كل Update() كما هي، لكنها تنشئ سلسلة نصية جديدة في كل إطار دون داعٍ.
التحدي
متوسطاعرض النتيجة والأرواح على الشاشة.
- في
GameManager، أضفusing TMPro;وpublic TMP_Text scoreText;وpublic TMP_Text livesText; - اكتب
void ShowHud():scoreText.text = "Score: " + score;وlivesText.text = "Lives: " + lives; - استدعِ
ShowHud()في نهاية Start، وفي BrickBroken وBallLost.
اضغط «العب»: ستظهر Score: 0 وLives: 3، وستتغيران أثناء اللعب. ثم اضغط «تحقق».
جرّب بنفسك
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager Instance;
public Brick brickPrefab;
public Transform wall;
public int rows = 5;
public int columns = 9;
public float spacingX = 1.75f;
public float spacingY = 0.75f;
public float topY = 6f;
public int[] rowHits = { 2, 1, 1, 1, 1 };
public int lives = 3;
int score;
void Awake()
{
Instance = this;
}
void Start()
{
BuildWall();
}
void BuildWall()
{
float left = -(columns - 1) * spacingX / 2f;
for (int row = 0; row < rows; row++)
{
for (int col = 0; col < columns; col++)
{
Vector3 pos = new Vector3(left + col * spacingX, topY - row * spacingY, 0f);
Brick brick = Instantiate(brickPrefab, pos, Quaternion.identity, wall);
brick.SetHits(rowHits[row]);
}
}
}
public void BrickBroken(Brick brick)
{
score += brick.points;
}
public void BallLost(Ball lost)
{
lives--;
lost.ResetToPaddle();
}
}
جميع دروس لعبة Unity: كاسر الطوب
تدرّب بنفسك: Playground لـ Unity