二十二.淡入淡出

淡入淡出

1.新建Panel,命名为FadeScreen

2.UIController中

添加淡入淡出参数

//淡入淡出
public Image fadeScreen;
public float fadeSpeed;
private bool shouldFadeToBlack;
private bool shouldFadeFromBlack;

设置绑定节点和设置值

请添加图片描述

Update()中,控制淡入淡出

if(shouldFadeToBlack)
{
    fadeScreen.color = new Color(fadeScreen.color.r, fadeScreen.color.g, fadeScreen.color.b, Mathf.MoveTowards(fadeScreen.color.a, 1f, fadeSpeed * Time.deltaTime));
    if(fadeScreen.color.a == 1f)
    {
        shouldFadeToBlack = false;
    }
}
if (shouldFadeFromBlack)
{
    fadeScreen.color = new Color(fadeScreen.color.r, fadeScreen.color.g, fadeScreen.color.b, Mathf.MoveTowards(fadeScreen.color.a, 0f, fadeSpeed * Time.deltaTime));
    if (fadeScreen.color.a == 0f)
    {
        shouldFadeFromBlack = false;
    }
}

添加函数,控制淡入淡出

public void FadeToBlack()
{
    shouldFadeToBlack = true;
    shouldFadeFromBlack = false;
}
public void FadeFromBlack()
{
    shouldFadeFromBlack = true;
    shouldFadeToBlack = false;
}

3.LevelManager中

角色死亡时,添加淡入效果

重新复活时,添加淡出效果

private IEnumerator RespawnCo()
{
    PlayerController.sInstance.gameObject.SetActive(false);
    //死亡音效
    AudioManager.sInstance.playSFX(8);

    yield return new WaitForSeconds(waitToRespawn - 1f / UIController.sInstance.fadeSpeed);
    //淡出效果
    UIController.sInstance.FadeToBlack();

    yield return new WaitForSeconds(1f / UIController.sInstance.fadeSpeed);
    //淡入效果
    UIController.sInstance.FadeFromBlack();

    PlayerController.sInstance.gameObject.SetActive(true);
    PlayerController.sInstance.transform.position = CheckpointController.sInstance.spawnPoint;
    //重置生命值
    PlayerHealthController.sInstance.currentHealth = PlayerHealthController.sInstance.maxHealth;
    UIController.sInstance.UpdateHealthDisplay();
}

4.游戏开始时淡出效果

设置FadeScreen颜色透明度A为255,默认状态下为黑色

在Start()中添加淡出效果代码

//游戏开始时添加淡入效果
FadeFromBlack();

这样就能从黑色淡出到正常游戏颜色

5.设置UI隐藏,以便编辑游戏

淡入淡出效果设置后,游戏界面部分被黑色的FadeScreen遮住,此时可设置Layer显示隐藏

请添加图片描述

这样在编辑游戏时,可排除UI遮住的影响

入淡出效果设置后,游戏界面部分被黑色的FadeScreen遮住,此时可设置Layer显示隐藏

[外链图片转存中…(img-dqw28TGQ-1721974169282)]

这样在编辑游戏时,可排除UI遮住的影响

需要编辑UI时,再设置UI Layer显示即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值