文章目录
玩家受伤
玩家受伤,屏幕显示血框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();
完结
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,以便我第一时间收到反馈,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!
好了,我是向宇
,https://xiangyu.blog.csdn.net
一位在小公司默默奋斗的开发者,出于兴趣爱好,最近开始自学unity,闲暇之余,边学习边记录分享,站在巨人的肩膀上,通过学习前辈们的经验总是会给我很多帮助和启发!php是工作,unity是生活!如果你遇到任何问题,也欢迎你评论私信找我, 虽然有些问题我也不一定会,但是我会查阅各方资料,争取给出最好的建议,希望可以帮助更多想学编程的人,共勉~