Global Game Jam 2022
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

141 lines
2.6 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Variables;
public class SneakyTextController : MonoBehaviour
{
[SerializeField]
private Reference<float> m_lightLevel;
[SerializeField]
private Reference<bool> m_freezePlayer;
[SerializeField]
private Reference<bool> m_manuelDarknesscontrol;
[SerializeField]
private float m_time = 10;
[SerializeField]
private GameObject m_timerObject;
[SerializeField]
private TMPro.TextMeshProUGUI m_text;
private bool m_hasTriggered = false;
private void OnEnable()
{
m_lightLevel.OnValueChanged += OnLightChange;
}
private void OnDisable()
{
m_lightLevel.OnValueChanged -= OnLightChange;
}
private void Start()
{
m_text.gameObject.SetActive(false);
}
private void OnLightChange(float value)
{
if (!m_hasTriggered && !m_freezePlayer)
{
m_hasTriggered = true;
StartCoroutine(Timer( m_time));
}
}
private IEnumerator Timer(float time)
{
Debug.Log("Showing sneaky text");
m_manuelDarknesscontrol.Value = true;
float elapsedTime = 0;
float fadeTime = 0.33f;
m_text.gameObject.SetActive(true);
Color color = m_text.color;
while (elapsedTime< fadeTime)
{
m_lightLevel.Value = 1 - (elapsedTime / fadeTime);
color.a = 1 - m_lightLevel;
m_text.color = color;
yield return new WaitForEndOfFrame();
elapsedTime += Time.deltaTime;
}
m_lightLevel.Value = 0;
color.a = 1 - m_lightLevel;
m_text.color = color;
m_timerObject.SetActive(false);
Time.timeScale = 0.1f;
elapsedTime = 0;
fadeTime = 1.0f;
while (elapsedTime < fadeTime)
{
Time.timeScale = 1 - (elapsedTime / fadeTime);
yield return new WaitForEndOfFrame();
elapsedTime += Time.unscaledDeltaTime;
}
yield return new WaitForSecondsRealtime(time);
Time.timeScale = 1;
m_timerObject.SetActive(true);
elapsedTime = 0;
fadeTime = 0.25f;
while (elapsedTime < fadeTime)
{
m_lightLevel.Value = (elapsedTime / fadeTime);
color.a = 1 - (elapsedTime / fadeTime);
m_text.color = color;
yield return new WaitForEndOfFrame();
elapsedTime += Time.deltaTime;
}
m_text.gameObject.SetActive(false);
m_manuelDarknesscontrol.Value = false;
}
}