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);
相关推荐
jtymyxmz8 小时前
《Unity Shader》12.2调整屏幕的亮度、饱和度和对比度
unity·游戏引擎
AllBlue16 小时前
unity嵌入安卓界面,如何显示状态
android·unity·游戏引擎
tealcwu17 小时前
【Unity技巧】实现在Play时自动保存当前场景
java·unity·游戏引擎
tealcwu17 小时前
【Unity基础】实现Scroll View跟随动态内容滚动
java·unity·游戏引擎
野奔在山外的猫18 小时前
【文档】VSCode 配置 Unity 环境流程
unity
技术小甜甜19 小时前
[Godot排错] 上传 Google Play Console 封闭测试时签名证书不匹配错误的解决方案
游戏引擎·godot·游戏开发
变身缎带1 天前
Unity中的NetworkManager基于protobuf, Socket-TCP
tcp/ip·unity·游戏引擎
AllBlue1 天前
unity调用安卓方法
android·unity·游戏引擎
郝学胜-神的一滴1 天前
Horse3D游戏引擎研发笔记(十):在QtOpenGL环境下,视图矩阵与投影矩阵(摄像机)带你正式进入三维世界
c++·3d·unity·游戏引擎·godot·图形渲染·unreal engine
AllBlue2 天前
unity导出成安卓工程,集成到安卓显示
android·unity·游戏引擎