屏幕上的生命值
Coddy Unity 塔防游戏 课程的第 4 课,共 25 课。
玩家应该能看到剩余生命。场景顶部栏中有一个 LivesText,它是 TextMeshPro 文本。它的脚本类型是 TMP_Text,需要使用 using TMPro;,显示的内容由它的 text 属性决定。
文本会显示最近一次设置的内容:它不会跟随变量变化。因此,把显示剩余生命的代码放在一个方法中,并在剩余生命变化时调用该方法,这样屏幕上的显示就不会滞后:
void ShowLives()
{
livesText.text = "Lives: " + lives;
}挑战
简单在屏幕上显示生命值。
- 在
GameManager中,添加using TMPro;和[SerializeField] private TMP_Text livesText;。 - 像上面那样编写
ShowLives()。 - 在
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 在线编辑器