【unity小技巧】受伤屏幕闪红、死亡动画、死亡黑屏效果

简介: 【unity小技巧】受伤屏幕闪红、死亡动画、死亡黑屏效果

玩家受伤

玩家受伤,屏幕显示血框UI,然后逐渐消失

//玩家受击时调用
void GetHit(){
  StartCoroutine(BloodyScreenEffect());
}

private IEnumerator BloodyScreenEffect()
{
    // 检查bloodyScreen是否处于非激活状态,如果是则将其激活
    if (!bloodyScreen.activeInHierarchy)
    {
        bloodyScreen.SetActive(true);
    }

    // 获取bloodyScreen下的Image组件
    var image = bloodyScreen.GetComponentInChildren<Image>();

    // 设置初始alpha值为1(完全可见)
    Color startColor = image.color;
    startColor.a = 1f;
    image.color = startColor;

    float duration = 3f;
    float elapsedTime = 0f;

    while (elapsedTime < duration)
    {
        // 使用Lerp计算新的alpha值
        float alpha = Mathf.Lerp(1f, 0f, elapsedTime / duration);

        // 更新颜色的alpha值
        Color newColor = image.color;
        newColor.a = alpha;
        image.color = newColor;

        // 增加经过的时间
        elapsedTime += Time.deltaTime;

        yield return null; // 等待下一帧
    }

    // 检查bloodyScreen是否处于激活状态,如果是则将其关闭
    if (bloodyScreen.activeInHierarchy)
    {
        bloodyScreen.SetActive(false);
    }
}

配置人物死亡动画

配置玩家死亡,倒地动画,其实是相机倒地

相机默认禁用死亡动画

玩家死亡调用,开启动画

GetComponentInChildren<Animator>().enabled true;

死亡黑屏效果

屏幕放置一个全屏的黑图,默认透明度设置为0

脚本控制

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
 
public class ScreenFader : MonoBehaviour
{
    public Image fadeImage; // 用于淡入淡出的Image组件
    public float fadeDuration = 7.0f; // 淡入淡出持续时间,单位秒
 
    public void StartFade()
    {
        StartCoroutine(FadeOut()); // 开始淡出
    }
 
    private IEnumerator FadeOut()
    {
        float timer = 0f; // 计时器,用于记录淡入淡出的时间
        Color startColor = fadeImage.color; // 获取初始颜色
        Color endColor = new Color(0f, 0f, 0f, 1f); // 结束颜色为黑色(RGB值为0),alpha值为1(完全不透明)
 
        while (timer < fadeDuration)
        {
            // 使用Lerp计算当前颜色,并更新fadeImage的颜色
            fadeImage.color = Color.Lerp(startColor, endColor, timer / fadeDuration);
            timer += Time.deltaTime; // 增加计时器
            yield return null; // 等待下一帧
        }
 
        // 确保在淡出结束时fadeImage完全变成黑色
        fadeImage.color = endColor;
    }
}

死亡调用

GetComponent<ScreenFader>().StartFade();
目录
相关文章
|
4天前
|
图形学 开发者
【Unity小技巧】unity移动物体的探究——使用8个不同方法
【Unity小技巧】unity移动物体的探究——使用8个不同方法
11 1
|
4天前
|
图形学
【unity小技巧】实现投掷物品,比如长矛,刀具,手榴弹和其他物体
【unity小技巧】实现投掷物品,比如长矛,刀具,手榴弹和其他物体
6 1
|
4天前
|
图形学
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
【unity小技巧】实现FPS武器的瞄准放大效果(UGUI实现反向遮罩,全屏遮挡,局部镂空效果)
8 1
|
4天前
|
图形学
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
4 0
【unity小技巧】unity3d创建和实现破碎打破物品,万物可破碎
|
4天前
|
图形学
【unity小技巧】Unity中实现一个战斗连击连招系统,可以动态添加减少连击连招段数功能
【unity小技巧】Unity中实现一个战斗连击连招系统,可以动态添加减少连击连招段数功能
5 0
|
4天前
|
存储 图形学
【unity小技巧】unity事件系统创建通用的对象交互的功能
【unity小技巧】unity事件系统创建通用的对象交互的功能
7 0
|
4天前
|
图形学
【unity小技巧】unity通过代码进行更改后处理效果
【unity小技巧】unity通过代码进行更改后处理效果
6 0
|
4天前
|
图形学
【unity小技巧】unity3D寻路指示轨迹预测
【unity小技巧】unity3D寻路指示轨迹预测
10 0
|
4天前
|
图形学
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
【unity小技巧】unity读excel配置表操作,excel转txt文本,并读取txt文本内容,实例说明
8 0
|
4天前
|
编解码 算法 图形学
【unity小技巧】减少Unity中的构建打包大小
【unity小技巧】减少Unity中的构建打包大小
5 0