RuralPowerCompetition_yizhe.../RuralPowerCompetition_yizheng1/Assets/Zone/Scripts/Transition/FadeInAndOut.cs

103 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
*
*
* Title:
* 公共层:场景的淡入淡出
* description:
* [描述]
*
* Date
*
* version
*
* modify Recoder
*
*
**/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class FadeInAndOut : MonoBehaviour
{
public static FadeInAndOut Instance;//本类实例
public GameObject goRawImage;//RawImage对象
public float FloColorChangeSpeed = 1f;
private RawImage _RawImage;//RawImage组件
private bool _BoolScenesToClear = true;//屏幕逐渐清晰
private bool _BoolScenesToBlack = false;//屏幕逐渐模糊
private void Awake()
{
Instance = this;
//如果goRawImage实例化出来了就添加一个RawImage组件
if (goRawImage)
{
_RawImage = goRawImage.GetComponent<RawImage>();
}
}
//控制淡入
public void SetScenseToClear()
{
_BoolScenesToClear = true;
_BoolScenesToBlack = false;
}
//控制淡出
public void SetScenseToBlack()
{
_BoolScenesToClear = false;
_BoolScenesToBlack = true;
}
//淡入
private void FadeToclear()
{
//运用Color的插值计算
_RawImage.color = Color.Lerp(_RawImage.color, Color.clear, FloColorChangeSpeed * Time.deltaTime);
}
private void FadeToBlack()
{
//运用Color的插值计算
_RawImage.color = Color.Lerp(_RawImage.color, Color.black, FloColorChangeSpeed * Time.deltaTime);
}
private void ScenesToClear()
{
FadeToclear();
if (_RawImage.color.a <= 0.05)
{
_RawImage.color = Color.clear;
_RawImage.enabled = false;
_BoolScenesToClear = false;
}
}
private void ScenesToBlack()
{
_RawImage.enabled = true;
FadeToBlack();
if (_RawImage.color.a >= 0.95)
{
_RawImage.color = Color.black;
_BoolScenesToBlack = false;
}
}
void Update()
{
if (_BoolScenesToClear)
{
//屏幕淡入
ScenesToClear();
}
else if (_BoolScenesToBlack)
{
//屏幕淡出
ScenesToBlack();
}
}//updata_end
}