Unity NGUI实现技能冷却
实现 Unity 技能 NGUI
2023-09-11 14:20:51 时间
技能冷却:
首先要有两个UISprite 一个作为游戏图标显示,一个使用半透明的灰色表示冷却过程中的遮罩层,代码当然也直接挂在这个UISprite(即为下图的Mask)上,并且设置Type属性为Filled如下图:
都设置完成之后,开始编写代码吧:
public class JiNengLengQu : MonoBehaviour {
public float coldTime = 0.1f; //假装是冷却时间
private bool isColding = false; //是否正在冷却
private UISprite sprite;
void Awake()
{
//获取遮罩层Sprite上UISprite脚本
sprite = GetComponent<UISprite>();
sprite.fillAmount = 0; //保证运行时是一个冷却好的状态,即可放技能状态
}
void Update()
{
if (Input.GetKeyDown(KeyCode.A) && isColding == false)
{
//1- 释放技能:创建粒子系统,显示技能特效..
//2- UI上显示技能冷却效果
sprite.fillAmount = 1;//获取脚本后可以取到fillAmount属性的值,并设为1
isColding = true; //如果按技能了,让冷却开始
}
if (isColding)
{
//fillAmount-=表示每帧减去的值,技能冷却中
sprite.fillAmount -= coldTime*Time.deltaTime;
if (sprite.fillAmount <= 0.05f) //fillAmount值为极小时,让冷却停止
{
isColding = false;
sprite.fillAmount = 0; //并让fillAmount值为0,表示此次冷却完成
Debug.Log("又可以放技能啦!");
}
}
}
}
相关文章
- 【.NET Core】注册中心consul介绍与实现
- SpringBoot+Redis实现分布式锁
- 使用C#的泛型队列Queue实现生产消费模式
- 基于Python(pyqt)实现人工智能基础(强化学习求解迷宫问题)【100010442】
- Android 串口通信基于licheedev和android-serialport两种方案实现附Demo
- php结合redis实现高并发下的抢购、秒杀功能
- 【Unity3D日常开发】Unity中实现圆环进度条
- Java实现字符串倒叙排列输出
- Unity 屏幕特效 之 基础知识简介,屏幕灰度特效实现
- Unity Shader 之 斜角(非竖向或横向)线性渐变颜色的简单实现
- Unity 工具 之 实现简单的添加脚本命名空间 Namespace 的小工具(不改动原始脚本模板)
- Unity 基础 之 实现简单监听晃动(摇一摇)手机设备震动手机设备的事件的功能
- Unity AssetBundle 之 (进阶)简单的实现 AssetBundle 框架,加载AB包资源,自动加载依赖资源(无需手动加载),自动打AB标签,自动打包AssetBundle的框架方法
- Unity 游戏实例开发集合 之 FlyPin (见缝插针) 休闲小游戏快速实现
- Unity 之 实现读取代码写进Word文档功能实现 -- 软著脚本生成工具
- 如何利用UGUI在Unity中实现一个本地排行榜
- 如何快速实现高并发短文检索-转
- 【Unity云消散】理论基础:实现边缘光
- 【Unity入门计划】2D游戏实现敌人来回移动控制脚本