U
Unity
星辰学院
首页
课程表
章节导览
第 1 课
返回主站
首页
/
第 12 章 · 特效与粒子
/
第 196 课
LESSON 196 · 特效与粒子
屏幕空间特效(特效进阶)
屏幕特效已掌握。下一课综合特效制作。
⏱ 约 14 分钟
📊 难度:
入门
🗂 第 12 章 · 特效与粒子
📍 第 196 / 300 课
课程进度
196 / 300
🎯
本节学习目标
实现受伤红屏
实现全屏闪烁
实现黑白效果
🚀
课程导读
“受伤屏幕变红”“被击中闪白”——全屏特效增强反馈。本课用 UI 与后期组合实现。
◆
受伤红屏与全屏闪
屏幕级反馈。
【受伤红屏】Canvas 顶层全屏 Image(红色、半透明、锚点拉伸),默认 Alpha 0。
【脚本 DamageFlash】
public Image redScreen; // 全屏红色
public float flashTime = 0.2f;
public void FlashRed() { StartCoroutine(Flash()); }
IEnumerator Flash() {
redScreen.color = new Color(1, 0, 0, 0.6f);
while (redScreen.color.a > 0f) {
Color c = redScreen.color; c.a -= Time.deltaTime / flashTime; redScreen.color = c;
yield return null;
}
}
【调用】玩家受伤时:damageFlash.FlashRed();
【白色闪】同理用白色 Image 做“被击中/闪光弹”全屏白。
【注意】全屏 Image 要在最上层(Hierarchy 最后),Block Raycast 可关。
【性能】全程只改颜色 alpha,零开销。
💡
受伤红屏 = 全屏半透明 Image + 协程淡出。一行调用、即时反馈。
◆
黑白滤镜与低速时间
“濒死/慢动作”感。
【黑白】用 Volume 的 Color Adjustments:Saturation 拖到 -100 = 黑白。
脚本控制饱和度:
public Volume volume; ColorAdjustments ca;
void Start() { volume.profile.TryGet(out ca); }
public void SetGrayscale(float s) { ca.saturation.value = s; }
【低速时间】濒死/慢动作:Time.timeScale = 0.3f(第 162 课),配合降饱和营造“危险”感。
【组合应用】血量低时:闪红 + 渐变黑白 + 心跳声。
【屏幕震动】配合第 198 课 Camera Shake,反馈更强烈。
【其他全屏特效】
被冰冻:蓝色全屏 Image + 缓慢淡入。
毒:绿色边缘。
【注意】后期效果要“可恢复”:结束后把饱和/时间调回正常。
【完整】做“低血量警告”系统:血<30% 时屏幕边缘泛红 + 呼吸闪烁。
【验证】扣血、濒死、恢复全程测试。
【完成】屏幕特效让游戏“会说话”。
✅
屏幕特效 = 全屏 Image(闪红/白)+ 后期调参(黑白)+ timeScale(慢动作)。反馈拉满。
⚠
常见错误与排查
⛔
错误:
红屏一直不消失?
原因:
协程被中断或 Alpha 没减到 0
解决:
确认协程正确执行;减到 0 后设 color.a=0 兜底。
★
动手练习
课后小任务(做出来才算真的学会)
实现受伤红屏闪烁
实现低血黑白渐变
结合慢动作做“濒死”效果
✓
本节小结
屏幕特效已掌握。下一课综合特效制作。
标记为已完成
完成打卡后,主站会实时更新你的学习进度 🎯
← 上一课
后期处理 Post Processing
下一课 →
综合特效制作:技能特效
↑