游戏开发之U3D实现技能图标冷却的效果
游戏开发之U3D实现技能图标冷却的效果
--本次使用的NGUI插件。
制作思路:NGUI插件里面有个UISprite组件,在它上面有个属性叫Type,改变相应的Type类型有不同的作用,本次使用的类型为Filled。
如下图:
将属性选为Filled类型之后,我们可以看到它下面浮出一个属性Fill Dir填充方向选择这个为Radial 360,改变Fill Amount的数值,就可以实现技能冷却的效果了,如果还想看到技能冷却倒计时,还得加个Lable,用来显示时间。
把步骤说一下:
首先如下图搭建好UI
然后给Skill游戏物体添加一个脚本,脚本我已经写好了,类名SkillCD,如下:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//此脚本挂在游戏对象上面
public class SkillCD :MonoBehaviour {
//定义技能按钮
private UIButton skillBtn;
//定义技能遮罩
private UISprite skillMask;
//定义显示技能冷却时间的文本
private UILabel skillCdLable;
//定义标识符判断是否是冷却状态
public bool isCd=false;
//定义技能冷却时间
public float skillCdTime = 6f;
//定义计时器
public float timeCount = 0;
private void Start()
{
//初始化的时候在游戏对象上面获取相应的组件
skillBtn =this.transform.Find("skillBtn").GetComponent<UIButton>();
skillMask =this.transform.Find("skillMask").GetComponent<UISprite>();
skillCdLable =this.transform.Find("skillCdLable").GetComponent<UILabel>();
//给技能按钮绑定回调方法
skillBtn.onClick.Add(new EventDelegate(OnSkillBtnClick));
//默认状态下skillMask的类型是Filled,也可以在组件面板直接调整
skillMask.type =UIBasicSprite.Type.Filled;
//默认让这个遮罩层游戏物体不显示
skillMask.gameObject.SetActive(false);
//默认让显示技能Cd的文本不显示,只有当点击之后才显示
skillCdLable.gameObject.SetActive(false);
}
private void OnSkillBtnClick()
{
//点击完技能按钮之后isCd设为true
isCd =true;
}
private void Update()
{
//如果是Cd状态
if(isCd)
{
//遮罩层游戏物体显示
skillMask.gameObject.SetActive(true);
//显示技能Cd的文本显示出来
skillCdLable.gameObject.SetActive(true);
//计时器开始计时
timeCount +=Time.deltaTime;
//还有多长时间回复冷却
float skillTimeNow = skillCdTime - timeCount;
//显示技能Cd的文本实时显示冷却时间
skillCdLable.text = skillTimeNow.ToString("f1");
//实时改变图片精灵的进度条的值,控制360度顺时针变化
skillMask.fillAmount = skillTimeNow / skillCdTime;
//如果到了冷却时间
if(skillMask.fillAmount==0)
{
//冷却标识符设为false
isCd =false;
//计时器归0
timeCount = 0;
//遮罩层游戏物体设为不显示
skillMask.gameObject.SetActive(false);
//显示技能Cd的文本设为不显示
skillCdLable.gameObject.SetActive(false);
}
}
}
}
运行游戏,就可以看到效果了。
游戏开发之U3D实现技能图标冷却的效果相关推荐
- 游戏开发之U3D插件EasyTouch5.x使用
游戏开发之U3D插件EasyTouch5.x使用 本篇只讲EasyTouch5.x的使用,不讲源码.本来想把EasyTouch5.x的使用手册翻译一遍,想来也是没那个时间. 第一 ...
- DirectX游戏开发之2D文字的实现
DirectX游戏开发之2D文字的实现 文字是承载信息最有效的载体之一,各种游戏程序都离不开文字的显示.对于3D文字来说,2D文字有其渲染的高效性和实现的简洁性. 2D文字的显示无论在写2D游戏还是在 ...
- DirectX游戏开发之3D角色动起(下)
DirectX游戏开发之3D角色动起(下) 直接先上图吧! 动作idle 动作attack 动作walk 动作run 看,多动作的模型搞下来了.原则上只要在此基础上略做修改就可以实现3d游戏的基本制作 ...
- 开发中的“软”与“硬”:高画质移动游戏开发之道
摘要:游戏的效果不仅与游戏引擎的渲染相关,与硬件优化也有千丝万缕的联系.一款基于芯片优化的移动游戏界面,甚至可以堪比视频游戏的视觉效果.高通半导体事业部资深经理刘晓光从软硬件两个层面分享了移动游戏开发 ...
- [整理]Unity3D游戏开发之Lua
原文1:[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.csdn.net/qinyuanpei.如果 ...
- 微信小游戏开发之CocosCreator多分辨率场景适配方案
主题 Cocos Creator不同手机分辨率的背景图像和场景内容适配 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容,以及对官方文 ...
- libGDX游戏开发之Box2D(十四)
libGDX游戏开发之Box2D(十四) libGDX系列,游戏开发有unity3D巴拉巴拉的,为啥还用java开发?因为我是Java程序员emm-国内用libgdx比较少,多数情况需要去官网和goo ...
- JAVA游戏开发之FPS精准控制
目录 JAVA游戏开发之FPS精准控制... 1 1 概述... 2 1.1 编写目的... 3 2 FPS精准控制... 3 2.1 FPS描述. ...
- 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...
本文将带你了解Android应用开发之Android重写ImageView实现图片镜像效果的代码教程,希望本文对大家学Android有所帮助. 前两天朋友问我一个问题,如何实现从手机系统相册加载一张图 ...
最新文章
- TensorFlow深度学习算法原理与编程实战 人工智能机器学习技术丛书
- python开发应用程序错误怎么办_编程中遇到的Python错误和解决方法汇总整理
- 捕捉不可控iframe的close事件_湖南大学王建锋团队:光/湿驱动的超快可逆可控致动器...
- SSDO AO 图像空间的动态全局光照
- 前端学习(2798):实现图片预览的效果
- tensorflow 十四 强化学习Q-learning
- shell bash常用工具教程(curl,jq)
- ESP8266(3)
- linux精简版远程登录,Linux下定制SSH来简化远程访问的方法
- 听刘万祥老师讲“风险矩阵分析图”
- 缓冲区溢出漏洞_缓冲区溢出漏洞简介
- MAC M1安装Node
- 华为云微认证《搭建Discuz论坛网站》重点笔记
- 服务器搭建SSH暴力攻击诱饵,制作密码字典
- 阿里P8共勉之-送书帖-听说最近你读过不少书?
- [博学谷学习记录]超强总结,用心分享|架构 Nacos入门
- HTTP超文本传输协议分析
- Windows操作系统进阶:AD域
- 秒针系统-中国领先的第三方营销数据技术公司
- 安全分析中的威胁情报(一)
热门文章
- 3D眼镜种类以及原理
- 小区物业信息管理系统c语言,小区信息管理系统.doc
- 15款免费又好用的安全软件
- XP下安装openssl的过程
- android Studio JDK环境变量配置
- camera中文版软件 ip_ip camera viewer中文版-ip camera viewer(远程监控器管理软件) 4.07 官方版 - 河东下载站...
- 业余草推荐阿里妈妈自研广告点击率预估核心算法MLR
- .net 浏览器预览PDF
- Verdi使用方法(1)— 打开user guide和加载波形
- [hive-4.0 ] Too many files with unapproved license: 2 See RAT report in: target/rat.txt