版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wang_lvril/article/details/80627587
功能介绍:加载场景时画面会逐渐变亮,退出场景时(或者角色死亡)画面逐渐变暗。
- 添加一个RawImage对象,设置Tag。
- 使其铺满整个屏幕
- 设置Color为合适的值,例RGBA(128,128,128,178);
- Canvas下添加一个Ganvas Group组件,设置Alpha为0.5;
添加脚本:
using UnityEngine.UI; //引入UI
using UnityEngine.SceneManagement; //场景转换
public float fadeSpeed=0.5f; //渐变速度
private bool sceneStarting=ture; //游戏是否开始(或者其他控制标志)
private RawImage rawImage=null; //RawImage对象
void Awake(){
RawImage=GetComponent<RawImage>();
}
//控制rawImage颜色变化
void FadeToClear(){
rawImage.color=Color.Lerp(rawImage,color,Color.clear,fadeSpeed*Time.deltaTime);
}
void FadeToBlack(){
rawImage.color=Color.Lerp(rawImage,color,Color.black,fadeSpeed*Time.deltaTime);
}
//开始和结束场景
void StartScene(){
FadeToClear();
if(rawImage.color.a<0.05f){
rawImage.color=Color.clear;
rawImage.enable=false;
sceneStarting=false;
}
}
void EndScene(){
rawImage.enable=true;
FadeToBlack();
if(rawImage.color.a>=0.95f){
SceneManager.LoadScene(0);
}
}
//开始游戏调用
void Update(){
if(sceneStarting)
StratScene();
}
开始游戏,调用StartScene()函数,RawImage的颜色由初始值均匀朝(0,0,0,0)变化,当a小于0.05时,设置RawImage的颜色为Color.clear 。enable=false , 标志位为false。
结束游戏时,RawImage的enable=true。颜色朝(0,0,0,1)变化,a值达到一定值,重新加载场景。
也可以通过调用此脚本对象的标志位,来实现其他功能。