959e80cf72
assets upload description.
80 lines
2.5 KiB
C#
80 lines
2.5 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using TMPro;
|
|
using UnityEngine.UI;
|
|
using RPGCreationKit;
|
|
|
|
namespace RPGCreationKit
|
|
{
|
|
public class InGameQuestObjectiveAlert : MonoBehaviour
|
|
{
|
|
[SerializeField] private TextMeshProUGUI text;
|
|
[SerializeField] private Image[] imagedToFadeInOut;
|
|
|
|
[SerializeField] private float totalTime = 8f;
|
|
|
|
[SerializeField] private float fadeInTime = 1.0f;
|
|
[SerializeField] private float fadeOutTime = 1.0f;
|
|
|
|
float timePassedSinceStart;
|
|
|
|
[ContextMenu("Get References")]
|
|
private void GetReferences()
|
|
{
|
|
text = GetComponentInChildren<TextMeshProUGUI>();
|
|
}
|
|
|
|
public void Initialize(string _quest)
|
|
{
|
|
text.text = _quest;
|
|
StartCoroutine(ManageAlertTask());
|
|
}
|
|
|
|
private IEnumerator ManageAlertTask()
|
|
{
|
|
timePassedSinceStart = 0.0f;
|
|
float alpha = 0.0f;
|
|
bool fadingOut = false;
|
|
|
|
while (true)
|
|
{
|
|
// Wait if the game is paused
|
|
while(!GameStatus.instance.PlayerPlaying())
|
|
yield return null;
|
|
|
|
if (!fadingOut)
|
|
{
|
|
text.color = new Color(text.color.r, text.color.g, text.color.b, (alpha));
|
|
|
|
for(int i = 0; i < imagedToFadeInOut.Length; i++)
|
|
imagedToFadeInOut[i].color = new Color(imagedToFadeInOut[i].color.r, imagedToFadeInOut[i].color.g, imagedToFadeInOut[i].color.b, (alpha));
|
|
|
|
alpha += (fadeInTime * Time.deltaTime);
|
|
alpha = Mathf.Clamp01(alpha);
|
|
}
|
|
else
|
|
{
|
|
text.color = new Color(text.color.r, text.color.g, text.color.b, (alpha));
|
|
|
|
for (int i = 0; i < imagedToFadeInOut.Length; i++)
|
|
imagedToFadeInOut[i].color = new Color(imagedToFadeInOut[i].color.r, imagedToFadeInOut[i].color.g, imagedToFadeInOut[i].color.b, (alpha));
|
|
|
|
alpha -= (fadeOutTime * Time.deltaTime);
|
|
alpha = Mathf.Clamp01(alpha);
|
|
}
|
|
|
|
timePassedSinceStart += 1 * Time.deltaTime;
|
|
|
|
// Check for FadeOut
|
|
|
|
if (timePassedSinceStart >= totalTime)
|
|
Destroy(this.gameObject);
|
|
|
|
fadingOut = (timePassedSinceStart + fadeOutTime >= totalTime) ? true : false;
|
|
|
|
yield return null;
|
|
}
|
|
}
|
|
}
|
|
} |