Unity | 技能(CD)冷却效果

1 简介

游戏中技能冷却是一种常见的机制,用于限制玩家连续使用某个技能的频率。在 Unity 中,可以使用 Image 组件的 Filled 选项来快速实现该效果

2 解决方案

1 制作遮罩

「创建 Image」

以目标对象的纹理创建 Image,将其层级设置为目标对象的上层,更改颜色为黑色,并设置合适的透明度

「修改 Image 属性」

  1. Image Type: Filled
  • 按照与 Simple 相同的方式显示精灵,但不同之处是使用定义的方向、方法和数量从原点开始填充精灵
  1. Fill Method: Radial 360
  • 填充方法
  1. Fill Origin: Top
  • 填充起始位置
  1. Fill Amount: 填充量
  • 脚本动态控制
  1. Clockwise: 不勾选
  • 填充量从0到1时是顺时针填充还是逆时针填充

最终样式如下:

2 增加动画

修改完 Image 的属性后,还需要编写脚本来动态控制 fillAmount 属性,让冷却效果真正的动起来

计算 fillAmount 属性的方式一般有两种:

  • 通过组件生命周期中的 Update 自己计算时间,实现平滑过度

  • 通过 DOTween 实现补间动画

这里更推荐使用 DOTween,会使代码更简洁,易于维护

复制代码
float totalTime = 5f;
float duration = 5f;
DOTween.To(() => duration,
    value => { this.imgMask.fillAmount = value / totalTime; },
    0,
    duration);
相关推荐
小贺儿开发2 小时前
Unity 结合百度AI开放平台 手写文字识别
人工智能·科技·学习·unity·云服务·文字识别·手写文字
goujunwe6 小时前
GEO 评估方法:如何自测你的内容,会不会被 AI 引用
搜索引擎·网络安全·游戏引擎·全文检索·中文分词
林川~0115 小时前
Unity 万能物理检测工具:射线检测 / 范围检测 / 层级过滤 / 编辑器可视化(可直接拿去用)
游戏·unity·c#·射线检测·通用工具
yi碗汤园1 天前
MQTT消息队列遥测传输协议
网络·网络协议·unity
林川~011 天前
Unity 常用 API 与核心类全解:从生命周期到协程,附性能避坑清单(Unity 6 适配)
unity·游戏引擎·常用api
sensen_kiss1 天前
CPT306 Coursework 1 个人游戏作业——坦克大战
unity·游戏程序·游戏策划
蒸鱼Yuzheng1 天前
Unity 与 Unreal 测试工具怎么回答:Profiler、日志、自动化与证据链
测试工具·unity·性能分析·游戏测试·unrealengine
野区捕龙为宠1 天前
Unity WebGL平台 通过 URL 加载图片(UGUI RawImage / 模型材质)
unity·团结引擎
阿松爱学习2 天前
【Unity开发】FileStream 详解及用法指南
unity·c#·unity开发
想做后端的前端2 天前
Unity-UIGI优化Rebatch与Rebuild
unity