UPF/Assets/Mirror/Examples/AdditiveLevels/Scripts/FadeInOut.cs
2023-02-24 22:14:55 +05:30

61 lines
1.7 KiB
C#
Executable File

using System.Collections;
using UnityEngine;
using UnityEngine.UI;
namespace Mirror.Examples.AdditiveLevels
{
public class FadeInOut : MonoBehaviour
{
// set these in the inspector
[Range(1, 100), Tooltip("Speed of fade in / out: lower is slower")]
public byte speed = 1;
[Tooltip("Reference to Image component on child panel")]
public Image fadeImage;
[Tooltip("Color to use during scene transition")]
public Color fadeColor = Color.black;
WaitForSeconds waitForSeconds;
void Awake()
{
waitForSeconds = new WaitForSeconds(speed * 0.01f);
}
public IEnumerator FadeIn()
{
//Debug.Log($"{System.DateTime.Now:HH:mm:ss:fff} FadeIn - fading image in {fadeImage.color.a}");
float alpha = fadeImage.color.a;
while (alpha < 1)
{
yield return waitForSeconds;
alpha += 0.01f;
fadeColor.a = alpha;
fadeImage.color = fadeColor;
}
//Debug.Log($"{System.DateTime.Now:HH:mm:ss:fff} FadeIn - done fading");
}
public IEnumerator FadeOut()
{
//Debug.Log($"{System.DateTime.Now:HH:mm:ss:fff} FadeOut - fading image out {fadeImage.color.a}");
float alpha = fadeImage.color.a;
while (alpha > 0)
{
yield return waitForSeconds;
alpha -= 0.01f;
fadeColor.a = alpha;
fadeImage.color = fadeColor;
}
//Debug.Log($"{System.DateTime.Now:HH:mm:ss:fff} FadeOut - done fading");
}
}
}