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);
相关推荐
90后小陈老师1 小时前
Unity教学 项目2 2D闯关游戏
游戏·unity·游戏引擎
噗噗夹的TA之旅2 小时前
Unity Shader 学习20:URP LitForwardPass PBR 解析
学习·unity·游戏引擎·图形渲染·技术美术
nnsix2 小时前
Unity ReferenceFinder插件 多选资源查找bug解决
unity·游戏引擎·bug
gzroy3 小时前
Unity Shader Graph实现全息瞄准器
unity·游戏引擎
90后小陈老师6 小时前
Unity教学 基础介绍
unity·游戏引擎
90后小陈老师6 小时前
Unity教学 项目3 3D坦克大战
3d·unity·游戏引擎
秦奈8 小时前
Unity复习学习随笔(五):Unity基础
学习·unity·游戏引擎
nnsix9 小时前
Unity ReferenceFinder插件 窗口中选择资源时 同步选择Assets下的资源
java·unity·游戏引擎
麷飞花10 小时前
unity3d scene窗口选中物体, 在 hierarchy高光显示
unity·editor·unity3d·u3d·hierarchy
ۓ明哲ڪ11 小时前
Unity功能——关闭脚本自动编译(Unity2021.3)
unity·游戏引擎