150 lines
5.3 KiB
C#
150 lines
5.3 KiB
C#
using System.Collections.Generic;
|
|
using BlueWater.Maps;
|
|
using DG.Tweening;
|
|
using Sirenix.OdinInspector;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using UnityEngine.UI;
|
|
|
|
namespace BlueWater.Uis
|
|
{
|
|
public class CombatUiManager : Singleton<CombatUiManager>
|
|
{
|
|
[field: Title("UI")]
|
|
[field: SerializeField]
|
|
public Canvas MainCanvas { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public RectTransform MainCanvasRect { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public CombatSkillUi CombatSkillUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public FieldBossHealthPointUi FieldBossHealthPointUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public PlayerHealthPointUi PlayerHealthPointUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public ItemLootUi ItemLootUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public CombatItemInventoryUi CombatItemInventoryUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public GameOverPopupUi GameOverPopupUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public ClearPopupUi ClearPopupUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public MenuPopupUi CombatMenuPopupUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public CombatTutorialUi CombatTutorialUi { get; private set; }
|
|
|
|
[field: SerializeField]
|
|
public MenuPopupUi DevelopMenuPopupUi { get; private set; }
|
|
|
|
[SerializeField]
|
|
private Image _fadeImage;
|
|
|
|
protected override void OnAwake()
|
|
{
|
|
InitializeComponents();
|
|
}
|
|
|
|
private void Start()
|
|
{
|
|
EventManager.OnFadeInOut += FadeInOut;
|
|
|
|
Invoke(nameof(StartTutorial), 0.1f);
|
|
}
|
|
|
|
private void StartTutorial()
|
|
{
|
|
CombatTutorialUi.ShowFirstTutorialUi();
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
if (Quitting) return;
|
|
|
|
EventManager.OnFadeInOut -= FadeInOut;
|
|
}
|
|
|
|
[Button("셋팅 초기화")]
|
|
private void InitializeComponents()
|
|
{
|
|
MainCanvas = GetComponent<Canvas>();
|
|
MainCanvasRect = MainCanvas.GetComponent<RectTransform>();
|
|
CombatSkillUi = MainCanvas.transform.Find("CombatSkillUi").GetComponent<CombatSkillUi>();
|
|
FieldBossHealthPointUi = MainCanvas.transform.Find("FieldBossHealthPointUi").GetComponent<FieldBossHealthPointUi>();
|
|
PlayerHealthPointUi = MainCanvas.transform.Find("PlayerHealthPointUi").GetComponent<PlayerHealthPointUi>();
|
|
ItemLootUi = MainCanvas.transform.Find("ItemLootUi").GetComponent<ItemLootUi>();
|
|
CombatItemInventoryUi = MainCanvas.transform.Find("CombatItemInventoryUi").GetComponent<CombatItemInventoryUi>();
|
|
GameOverPopupUi = MainCanvas.transform.Find("GameOverPopupUi").GetComponent<GameOverPopupUi>();
|
|
ClearPopupUi = MainCanvas.transform.Find("ClearPopupUi").GetComponent<ClearPopupUi>();
|
|
CombatMenuPopupUi = MainCanvas.transform.Find("CombatMenuPopupUi").GetComponent<MenuPopupUi>();
|
|
CombatTutorialUi = MainCanvas.transform.Find("CombatTutorialUi").GetComponent<CombatTutorialUi>();
|
|
DevelopMenuPopupUi = MainCanvas.transform.Find("DevelopMenuPopupUi").GetComponent<MenuPopupUi>();
|
|
_fadeImage = MainCanvas.transform.Find("FadeImage").GetComponent<Image>();
|
|
}
|
|
|
|
public void FadeInOut(float fadeInTime, float fadeOutTime, Color? fadeColor = null, float delayAfterFadeIn = 0f)
|
|
{
|
|
var newColor = new Color(1f, 1f, 1f, 0f);
|
|
if (fadeColor != null)
|
|
{
|
|
newColor = (Color)fadeColor;
|
|
}
|
|
_fadeImage.color = newColor;
|
|
_fadeImage.enabled = true;
|
|
_fadeImage.DOFade(1f, fadeInTime).OnComplete(() =>
|
|
{
|
|
DOVirtual.DelayedCall(delayAfterFadeIn, () =>
|
|
{
|
|
_fadeImage.DOFade(0f, fadeOutTime).OnComplete(() =>
|
|
{
|
|
_fadeImage.enabled = false;
|
|
});
|
|
});
|
|
});
|
|
}
|
|
|
|
public void HardResetAllMaps()
|
|
{
|
|
MapManager.Instance.HardResetAllMaps();
|
|
PopupUiController.CloseAllPopup();
|
|
}
|
|
|
|
public void RestartCurrentStage()
|
|
{
|
|
MapManager.Instance.RestartCurrentMap();
|
|
PopupUiController.CloseAllPopup();
|
|
}
|
|
|
|
public void MoveSelectStage(int stage)
|
|
{
|
|
MapManager.Instance.MoveSelectStage(stage);
|
|
PopupUiController.CloseAllPopup();
|
|
}
|
|
|
|
public void MoveTitleScene()
|
|
{
|
|
PostProcessingManager.Instance.ToggleRendererFeature(RendererFeatureName.GrayscaleRenderPassFeature, false);
|
|
VisualFeedbackManager.Instance.SetBaseTimeScale(1f);
|
|
SceneManager.LoadScene("00.CombatTitle");
|
|
}
|
|
|
|
public void QuitGame()
|
|
{
|
|
#if UNITY_EDITOR
|
|
UnityEditor.EditorApplication.isPlaying = false;
|
|
#else
|
|
Application.Quit();
|
|
#endif
|
|
}
|
|
}
|
|
} |