61 lines
1.7 KiB
C#
61 lines
1.7 KiB
C#
|
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");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|