画面に残機を表示する
Coddyの「Unityゲーム:タワーディフェンス」コースのレッスン 4/25。
プレイヤーには残りライフが見えるようにします。シーンには上部バーにLivesTextというTextMeshProのテキストがあります。そのスクリプトの型はTMP_Textで、using TMPro;を使います。表示内容はtextです。
テキストに表示されるのは最後に設定された内容で、変数の値に自動で追従するわけではありません。そこで、ライフを表示する行を1つのメソッドにまとめ、ライフが変わるたびにそのメソッドを呼び出して、画面の表示が古いままにならないようにします。
void ShowLives()
{
livesText.text = "Lives: " + lives;
}チャレンジ
簡単ライフを画面に表示します。
GameManagerに、using TMPro;と[SerializeField] private TMP_Text livesText;を追加します。- 上記のように
ShowLives()を記述します。 Startの最後と、ライフが変化した後に呼び出します。
「プレイ」を押します。敵が通過するにつれて、Lives: 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プレイグラウンド