using UnityEngine;
using UnityEngine.UI;
namespace GameFramework
{
///
/// 得分显示组件。
/// 订阅 ScoreManager.onScoreChanged 事件,自动更新 Text。
/// 挂到场景中带有 Text 组件的 Canvas 元素上即可。
///
public class ScoreDisplay : MonoBehaviour
{
[SerializeField] Text scoreText;
[SerializeField] string format = "{0}";
void OnEnable()
{
ScoreManager.onScoreChanged += UpdateText;
}
void OnDisable()
{
ScoreManager.onScoreChanged -= UpdateText;
}
void Start()
{
if (scoreText == null)
scoreText = GetComponent();
if (ScoreManager.Instance != null)
UpdateText(ScoreManager.Instance.CurrentScore);
else
UpdateText(0);
}
void UpdateText(int score)
{
if (scoreText != null)
scoreText.text = string.Format(format, score);
}
}
}