Unity3d C#实现类似于王者荣耀技能读条和CD冷却的功能(含源码)

news2025/1/12 10:43:28

效果

在这里插入图片描述

效果如图,主要是释放技能后,有一定的技能的持续时间(也可以设置为0),然后技能释放完成后,技能进入了冷却时间的倒计时,技能冷却完成后就可以再次释放。

实现

UI搭建

UI的搭建较为简单就是几张图片(Image)配合文本(Text),文本主要用于技能冷却文字的提示和冷却CD倒计时的显示,而图片就包含了技能的图标、技能释放的外环(用于显示释放倒计时)、技能冷却的倒计时图片等,效果如图:
在这里插入图片描述

不过技能释放的外环和技能冷却倒计时图片需要将他们的Image Type设置为Filled:
在这里插入图片描述

编写代码

技能的配置项我们将他们提取为公用的,而且可以配置的操作:

   [Header("技能释放持续时间")]
    public float SkillDura;

    [Header("技能CD")]
    public float SkillCD;

    [Header("UI图片&文字")]
    public Text CountDownText;
public Image DoingImg, CoverImg;

这样我们就能在单个技能中配置多个技能各自的相关属性了。生产的配置面板如图:
在这里插入图片描述

技能的释放中的更新操作主要是根据释放的时间来更新释放图片的进度(fillAmount),并在释放完成后设置还原释放状态。

    void DoSkillUpdate() {
        if (Time.time - SkillTime <= SkillDura)
        {
            DoingImg.fillAmount = (SkillDura - (Time.time - SkillTime)) / SkillDura;
            //CountDownText.text = (SkillDura - (Time.time - SkillTime)).ToString("F1");
            CountDownText.text = "";
        }
        else
        {
            IsDoing = false;
            CoverImg.fillAmount = 1;
            DoingImg.fillAmount = 0;
            LastTime = Time.time;
        }
}

技能冷却CD读秒的过程,主要的操作是更新技能冷却图片的进度(fillAmount)和技能冷却的倒计时,并在技能冷却后重新设置技能的状态。

    void SkillNotReadyUpdate() {
        if (Time.time - LastTime <= SkillCD)
        {
            CountDownText.text = "冷却中\n"+(SkillCD - (Time.time - LastTime)).ToString("F1");

            CoverImg.fillAmount = (SkillCD - (Time.time - LastTime)) / SkillCD;
        }
        else
        {
            CountDownText.text = "";
            IsReady = true;
            CoverImg.fillAmount = 0;
        }
    }

技能的释放接口,我们需要进行一定的状态判断,正在释放中或者冷却中是无法释放的,释放接口如下:

public void DoSkill() {
        if (!IsReady || IsDoing)
            return;
        CoverImg.fillAmount = 0;
        LastTime = Time.time;
        SkillTime = Time.time;
        IsReady = false;
        IsDoing = true;
 }

并将该函数绑定在技能的图标的按钮点击函数上,这样点击技能就可以实施技能。

这样技能的编码全部完成。

其它

有很多时候技能是没有持续时间(即为0),这时候只需要将SkillDura设置为0
在这里插入图片描述

技能便可以秒释放,且开始冷却技能。
在这里插入图片描述

这里我多克隆几个技能图标,并设置不同的参数,通过快捷键同步实施效果如下:
在这里插入图片描述

源码工程

https://download.csdn.net/download/qq_33789001/87349847
(打不开说明暂时未审核通过)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/118024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

react基本使用

react基本使用1.基础知识1.1 React 介绍1.2 React特点声明式UI组件化学习一次&#xff0c;随处使用2.基本使用2.1 React 脚手架&#xff08;CLI&#xff09;使用 React 脚手架创建项目项目目录结构说明和调整2.2 使用React 的基本步骤2.2.1 导入react和react-dom2.2.2 创建reac…

2023风丘内推计划——“你的同事 你来挑”

招 聘 简 章 &#xff08;一&#xff09;企业文化 愿 景&#xff1a;让科技更简单 使 命&#xff1a;为客户创造更多价值&#xff1b;为员工创造更多机会&#xff1b;为社会贡献更多美好&#xff01; 价值观&#xff1a;诚信敬业、持续创新、团队合作、追求卓越、勇担…

Redis高可用之集群架构(第三部分)

引言 集群的实际环境模拟可以参考我之前的文章 单机模拟集群&#xff08;三主两从&#xff09; 一、集群的工作原理 集群中的节点只能使用0号数据库&#xff0c;而单机数据库没有这个限制。集群中的节点本质上就是一个运行在集群模式下的Redis服务器&#xff0c;Redis服务器在…

【endnote学习】为什么引用文献时期刊名没有显示为缩写名形式

为什么引用文献时期刊名没有显示为缩写名形式问题描述问题解决问题描述 在引用文献时&#xff0c;发现有个别文献引用信息中期刊名没有显示为缩写形式。比如(选择显示格式为AIChE): 引用信息里&#xff0c;期刊名“Physical review B”没有自动显示为缩写名。 出现这种情况有…

c++算法基础必刷题目——前缀和与差分

文章目录前缀和与差分算法&#xff1a;1、校门外的树2、值周3、中位数图4、激光炸弹5、二分6、货仓选址前缀和与差分算法&#xff1a; 前缀和与差分算法主要是为了快速求出某个区间的和&#xff0c;例如有一个数组a[10]{0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4…

unity编辑器窗口介绍

Hierarchy 摆放了unity游戏中使用的节点。 Scene 场景编辑视图&#xff0c;经常用到。 栅格 场景编辑视图中&#xff0c;有一些栅格&#xff0c;用下面这个就可以控制是否展示栅格。 天空盒&#xff08;skybox&#xff09; 天空一片蓝色&#xff0c;也是因为初始创建了蓝色的…

【聆思CSK6 视觉AI开发套件试用】AI Demo试用

本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;kings669669 AI套件外观 环境搭建 按照官网手册&#xff0c;我在Windows环境下遇到一些问题&#xff0c;在这里给出我的一些解决办法。不知道…

端到端数据战略,亚马逊云科技为数据服务带来了什么?

大约十年前&#xff0c;维克托舍恩伯格在《大数据时代》一书中直言&#xff1a;世界的本质是数据&#xff0c;大数据将开启一次重大的时代转型。 十年之后&#xff0c;维克托舍恩伯格的预言逐渐成真。全球数字经济近年来的蓬勃发展&#xff0c;推动了各行各业的加速转型。如今…

生成对抗:少样本学习

GAN:少样本学习 任何深度学习模型要获得较好结果往往需要大量的训练数据。但是&#xff0c;高质量的数据往往是稀缺的和昂贵的。好消息是&#xff0c;自从GANs问世以来&#xff0c;这个问题得到妥善解决&#xff0c;我们可以通过GAN来生成高质量的合成数据样本帮助模型训练。通…

vue 使用 PDF.js 浏览pdf文件

学习关键语句: 使用 PDF.js 在网页浏览pdf vue 使用 PDF.js vue 浏览pdf文件 写在前面 很头大 , 本来网络实际地址的 pdf 文件直接放在 iframe 的 src 中就可以浏览 pdf 文件的 , 但是对于虚拟地址来说 , 这样子只会让网页当场开始下载 pdf 文件到本地 , 而并不能在网页上浏览…

C规范编辑笔记(九)

往期文章&#xff1a; C规范编辑笔记(一) C规范编辑笔记(二) C规范编辑笔记(三) C规范编辑笔记(四) C规范编辑笔记(五) C规范编辑笔记(六) C规范编辑笔记(七) C规范编辑笔记(八) 正文&#xff1a; 今天我们来分享一下C规范编辑笔记第九篇&#xff0c;话不多说&#xff0c;我…

【聆思CSK6 视觉AI开发套件试用】初体验

本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;米樂 非常幸运能有评测这次的CSK6的机会。记录使用该套件进行开发的过程和感受。 套件介绍 CSK6是聆思科技推出的一款MCUDSPNPU的SoC芯片 套件…

免费pdf合并在线,这几个神仙网站请收好

对于经常要处理PDF文档的人来说&#xff0c;pdf合并如今已经是很常见的需求了。但是这个操作对一般人来说还有点难度&#xff0c;因此很多人都在寻找好用的免费pdf合并在线网站。今天小编就为大家吐血整理了工作几年来遇到的几个免费pdf合并在线的神仙网站。 1. Pdfio 这是一…

网络故障分析助您高效网上办公(一)

前言 信息中心负责人表示&#xff0c;有用户反馈&#xff0c;在通过VPN访问某一IP的80端口时连接时断时续。同时信息中心给到的信息是通过VPN&#xff1a;XXX.XXX.253.5访问IP地址XXX.XXX.130.200的80端口出现访问时断时续问题。 需要通过分析系统看一下实际情况&#xff0c;…

【Linux修炼】11.进程的创建、终止、等待、程序替换

每一个不曾起舞的日子&#xff0c;都是对生命的辜负。 进程的创建、终止、等待、程序替换本节重点1. 进程的创建1.1 fork函数初识1.2 fork的返回值问题1.3 写时拷贝1.4 创建多个进程2. 进程终止2.1 进程退出码2.2 进程如何退出3. 进程等待3.1 进程等待的原因3.2 进程等待的方法…

Uboot中的DM驱动模型

这一篇我们学习uboot中的驱动模型的初始化&#xff0c;在uboot中&#xff0c;驱动模型被称为Driver Model&#xff0c;简称DM。这种驱动模型为uboot中的各类驱动提供了统一的接口。 1. 数据结构及概念 DM模型主要依赖于下面四种数据结构&#xff1a; udevice&#xff0c;具有…

MySQL数据库闭包 Closure Table 表实现

1、 数据库闭包表简介 像MySQL这样的关系型数据库&#xff0c;比较适合存储一些类似表格的扁平化数据&#xff0c;但是遇到像树形结构这样有深度的数据&#xff0c;就很难驾驭了。 针对这种场景&#xff0c;闭包表&#xff08;Closure Table &#xff09;是最通用的设计&…

面试官:系统需求多变时如何设计?

面试官&#xff1a;我想问个问题哈&#xff0c;项目里比较常见的问题 面试官&#xff1a;我现在有个系统会根据请求的入参&#xff0c;做出不同动作。但是&#xff0c;这块不同的动作很有可能是会发生需求变动的&#xff0c;这块系统你会怎么样设计&#xff1f; 面试官&#…

FFmpeg简单使用:视频编码 ---- YUV转H264

基本流程 从本地读取YUV数据编码为h264格式的数据&#xff0c;然后再存⼊到本地&#xff0c;编码后的数据有带startcode。 与FFmpeg 示例⾳频编码的流程基本⼀致。 函数说明&#xff1a;avcodec_find_encoder_by_name&#xff1a;根据指定的编码器名称查找注册的编码器。 av…

第二十九章 数论——中国剩余定理与线性同余方程组

第二十九章 数论——中国剩余定理与线性同余方程组一、中国剩余定理1、作用&#xff1a;2、内容&#xff1a;3、证明&#xff1a;&#xff08;1&#xff09;逆元的存在性&#xff08;2&#xff09;验证定理的正确性4、代码实现&#xff1a;&#xff08;1&#xff09;步骤&#…