Reapply "Merge pull request '리듬게임' (#5) from CatsRhythmGame into main"
This reverts commit d7d5519fbf.
This commit is contained in:
50
Assets/02_Scripts/UI/RhythmResultHud.cs
Normal file
50
Assets/02_Scripts/UI/RhythmResultHud.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
// 곡 종료 후 결과창. 총점/판정수/정확도/등급/최대콤보를 표시한다.
|
||||
public class RhythmResultHud : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private RhythmManager _manager;
|
||||
[SerializeField] private GameObject _root; // 결과창 루트
|
||||
[SerializeField] private TMP_Text _scoreText;
|
||||
[SerializeField] private TMP_Text _maxComboText;
|
||||
[SerializeField] private TMP_Text _countText; // Perfect/Good/Bad/Miss 모아서 표시
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (_root != null) _root.SetActive(false);
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
if (_manager == null) return;
|
||||
_manager.OnSongStarted += Hide;
|
||||
_manager.OnSongFinished += Show;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
if (_manager == null) return;
|
||||
_manager.OnSongStarted -= Hide;
|
||||
_manager.OnSongFinished -= Show;
|
||||
}
|
||||
|
||||
private void Hide()
|
||||
{
|
||||
if (_root != null) _root.SetActive(false); // 곡 시작/재시작 시 이전 결과창 숨김
|
||||
}
|
||||
|
||||
private void Show(RhythmScore score)
|
||||
{
|
||||
if (_scoreText != null) _scoreText.text = $"{score.Score:N0}";
|
||||
if (_maxComboText != null) _maxComboText.text = $"{score.MaxCombo}";
|
||||
if (_countText != null)
|
||||
_countText.text =
|
||||
$"Perfect {score.PerfectCount}\n" +
|
||||
$"Good {score.GoodCount}\n" +
|
||||
$"Bad {score.BadCount}\n" +
|
||||
$"Miss {score.MissCount}";
|
||||
|
||||
if (_root != null) _root.SetActive(true);
|
||||
}
|
||||
}
|
||||
2
Assets/02_Scripts/UI/RhythmResultHud.cs.meta
Normal file
2
Assets/02_Scripts/UI/RhythmResultHud.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b187e420986956a4ba9407759ed4050f
|
||||
56
Assets/02_Scripts/UI/RhythmScoreHud.cs
Normal file
56
Assets/02_Scripts/UI/RhythmScoreHud.cs
Normal file
@@ -0,0 +1,56 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
// 플레이 중 실시간 점수/콤보 HUD. RhythmManager 이벤트만 구독하고 표시만 한다.
|
||||
public class RhythmScoreHud : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private RhythmManager _manager;
|
||||
[SerializeField] private GameObject _root; // HUD 루트 (곡 시작/종료에 켜고 끔)
|
||||
[SerializeField] private TMP_Text _scoreText;
|
||||
[SerializeField] private TMP_Text _comboText;
|
||||
[SerializeField] private TMP_Text _judgeText; // Perfect/Good 등 최근 판정 표시(선택)
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
if (_root != null) _root.SetActive(false); // 곡 시작 전엔 숨김
|
||||
}
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
if (_manager == null) return;
|
||||
_manager.OnSongStarted += HandleSongStarted;
|
||||
_manager.OnScoreChanged += HandleScoreChanged;
|
||||
_manager.OnJudged += HandleJudged;
|
||||
_manager.OnSongFinished += HandleSongFinished;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
if (_manager == null) return;
|
||||
_manager.OnSongStarted -= HandleSongStarted;
|
||||
_manager.OnScoreChanged -= HandleScoreChanged;
|
||||
_manager.OnJudged -= HandleJudged;
|
||||
_manager.OnSongFinished -= HandleSongFinished;
|
||||
}
|
||||
|
||||
private void HandleSongStarted()
|
||||
{
|
||||
if (_root != null) _root.SetActive(true); // 곡 시작 시 실시간 HUD 표시
|
||||
}
|
||||
|
||||
private void HandleScoreChanged(RhythmScore score)
|
||||
{
|
||||
if (_scoreText != null) _scoreText.text = $"SCORE {score.Score:N0}";
|
||||
if (_comboText != null) _comboText.text = score.Combo > 0 ? $"{score.Combo}" : "";
|
||||
}
|
||||
|
||||
private void HandleJudged(Result result)
|
||||
{
|
||||
if (_judgeText != null) _judgeText.text = result.ToString();
|
||||
}
|
||||
|
||||
private void HandleSongFinished(RhythmScore score)
|
||||
{
|
||||
if (_root != null) _root.SetActive(false); // 곡 끝나면 실시간 HUD는 숨김(결과창이 대신 뜸)
|
||||
}
|
||||
}
|
||||
2
Assets/02_Scripts/UI/RhythmScoreHud.cs.meta
Normal file
2
Assets/02_Scripts/UI/RhythmScoreHud.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2d2c41822c633294a986c6803818303d
|
||||
Reference in New Issue
Block a user