84 lines
1.8 KiB
C#
84 lines
1.8 KiB
C#
|
|
using UnityEngine;
|
||
|
|
using UnityEngine.UI;
|
||
|
|
using UnityEngine.InputSystem;
|
||
|
|
using UnityEngine.EventSystems;
|
||
|
|
using UnityEngine.InputSystem.Controls;
|
||
|
|
|
||
|
|
public class LevelUI : MonoBehaviour
|
||
|
|
{
|
||
|
|
[Header("유틸리티")]
|
||
|
|
public Text timer;
|
||
|
|
public Text livesCount;
|
||
|
|
|
||
|
|
[Header("일시정지 설정")]
|
||
|
|
[SerializeField] private GameObject pausePanel;
|
||
|
|
[SerializeField] private GameObject resumeButton;
|
||
|
|
|
||
|
|
private bool isPaused = false;
|
||
|
|
|
||
|
|
private void Update()
|
||
|
|
{
|
||
|
|
if (Keyboard.current != null && Keyboard.current.escapeKey.wasPressedThisFrame)
|
||
|
|
{
|
||
|
|
OnPressPauseButton();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void Start()
|
||
|
|
{
|
||
|
|
GameManager.instance.levelUI = this;
|
||
|
|
InitLevelUI();
|
||
|
|
|
||
|
|
if (pausePanel != null)
|
||
|
|
{
|
||
|
|
pausePanel.SetActive(false);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public void InitLevelUI()
|
||
|
|
{
|
||
|
|
timer.text = $"시간 : {Mathf.RoundToInt(GameManager.instance.timeForLive)}";
|
||
|
|
livesCount.text = $"목숨 : {GameManager.instance.currentLives.ToString()}";
|
||
|
|
}
|
||
|
|
|
||
|
|
private void OnPressPauseButton()
|
||
|
|
{
|
||
|
|
if (isPaused)
|
||
|
|
{
|
||
|
|
Resume();
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
Pause();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Pause()
|
||
|
|
{
|
||
|
|
isPaused = true;
|
||
|
|
pausePanel.SetActive(true);
|
||
|
|
Time.timeScale = 0f;
|
||
|
|
|
||
|
|
EventSystem.current.SetSelectedGameObject(null);
|
||
|
|
EventSystem.current.SetSelectedGameObject(resumeButton);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Resume()
|
||
|
|
{
|
||
|
|
isPaused = false;
|
||
|
|
pausePanel.SetActive(false);
|
||
|
|
Time.timeScale = 1f;
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Retry()
|
||
|
|
{
|
||
|
|
Time.timeScale = 1f;
|
||
|
|
GameManager.instance.RetryLevel();
|
||
|
|
}
|
||
|
|
|
||
|
|
public void GoToLevelSelect()
|
||
|
|
{
|
||
|
|
Time.timeScale = 1f;
|
||
|
|
GameManager.instance.ExitLevel();
|
||
|
|
}
|
||
|
|
}
|