75 lines
1.8 KiB
C#
75 lines
1.8 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using UnityEngine.UI;
|
|
|
|
public class GameManager : MonoBehaviour
|
|
{
|
|
public static GameManager Instance;
|
|
public Image fadeRect;
|
|
public DialogueController dialogueController;
|
|
public UIManager uiManager;
|
|
|
|
public Texture2D m_talkCursor, m_lookCursor, m_defaultCursor;
|
|
|
|
[SerializeField] private float m_fadeT;
|
|
private float m_fadeTotal;
|
|
[SerializeField] private bool m_showFade = false;
|
|
[SerializeField] private float m_fadeDuration = 1;
|
|
private Action m_fadeCallback;
|
|
|
|
private void Awake()
|
|
{
|
|
if (Instance == null)
|
|
{
|
|
Instance = this;
|
|
}
|
|
else
|
|
{
|
|
Debug.LogWarning("There can only be one instance of the CharacterManager class");
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
//Fade image towrads target
|
|
if(m_showFade)
|
|
{
|
|
if (m_fadeTotal < m_fadeDuration / 2)
|
|
{
|
|
m_fadeT += Time.deltaTime;
|
|
} else
|
|
{
|
|
m_fadeCallback?.Invoke();
|
|
m_fadeCallback = null;
|
|
m_fadeT -= Time.deltaTime;
|
|
}
|
|
m_fadeTotal += Time.deltaTime;
|
|
|
|
|
|
if(m_fadeT < 0)
|
|
{
|
|
m_showFade = false;
|
|
m_fadeT = 0;
|
|
m_fadeTotal = 0;
|
|
}
|
|
|
|
fadeRect.color = new Color(0f, 0f, 0f, Mathf.Lerp(0, 1, m_fadeT));
|
|
}
|
|
}
|
|
|
|
public void FadePingPong(Action callback = null)
|
|
{
|
|
m_fadeCallback = callback;
|
|
m_fadeTotal = 0;
|
|
m_showFade = true;
|
|
}
|
|
|
|
public void ShowGameResultScene(bool success)
|
|
{
|
|
SceneManager.LoadScene(success ? "WinScene" : "LossScene");
|
|
}
|
|
}
|