Menu
CoddyTech

屏幕上的生命值

Coddy Unity 塔防游戏 课程的第 4 课,共 25 课。

玩家应该能看到剩余生命。场景顶部栏中有一个 LivesText,它是 TextMeshPro 文本。它的脚本类型是 TMP_Text,需要使用 using TMPro;,显示的内容由它的 text 属性决定。

文本会显示最近一次设置的内容:它不会跟随变量变化。因此,把显示剩余生命的代码放在一个方法中,并在剩余生命变化时调用该方法,这样屏幕上的显示就不会滞后:

void ShowLives()
{
    livesText.text = "Lives: " + lives;
}
challenge icon

挑战

简单

在屏幕上显示生命值。

  1. 在 GameManager 中,添加 using TMPro; 和 [SerializeField] private TMP_Text livesText;。
  2. 像上面那样编写 ShowLives()。
  3. 在 Start 的末尾,以及生命值变化后调用它。

按下“开始”:敌人通过时,生命值会从 20 开始减少。然后点击“检查”。

亲手试试

using UnityEngine;

public class GameManager : MonoBehaviour
{
    [SerializeField] private int startLives = 20;

    private int lives;

    void OnEnable()
    {
        Enemy.ReachedBase += OnReachedBase;
    }

    void OnDisable()
    {
        Enemy.ReachedBase -= OnReachedBase;
    }

    void Start()
    {
        lives = startLives;
    }

    void OnReachedBase(Enemy enemy)
    {
        lives -= enemy.data.damage;
    }
}

Unity 塔防游戏中的所有课

自己练习: Unity 在线编辑器