游戏开发之U3D实现技能图标冷却的效果
来源:互联网 发布:php 扩展 不成功 编辑:程序博客网 时间:2024/05/16 23:41
游戏开发之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实现技能图标冷却的效果
- 游戏技能冷却效果的实现
- 【Cocos2d-x游戏引擎开发笔记(9)】实现DotA的技能冷却效果
- 【Cocos2d-x游戏引擎开发笔记(9)】实现DotA的技能冷却效果(转)
- 【Cocos2d-x游戏引擎开发笔记(9)】实现DotA的技能冷却效果
- 技能冷却图标实现
- 实现DotA的技能冷却效果
- 实现DotA的技能冷却效果
- 实现DotA的技能冷却效果
- [Unity3D] 技能图标的冷却效果和时间显示
- Libgdx 实现技能冷却效果
- Libgdx 实现技能冷却效果
- 实现Dota技能冷却效果
- 如何实现技能冷却效果
- 使用Unity3D制作技能图标冷却效果
- Unity3D UGUI实现冷却时间的技能图标
- Cocos2d-x CCProgressTimer实现DotA的技能冷却效果
- Cocos2d-x CCProgressTimer实现DotA的技能冷却效果
- inline-block在ie兼容性问题
- 简述设计模式之单例模式
- Codeforces Round #430 (Div. 2) C. Ilya And The Tree(dfs+最大公约数+因子+树)
- 深入分析Java ClassLoader原理
- 字体样式
- 游戏开发之U3D实现技能图标冷却的效果
- Android7.0文件共享
- 使用plsql不安装oracle客户端整理流程
- 关卡设计快速入门_1. 创建新项目
- 关于python无法显示中文的问题:SyntaxError: Non-ASCII character '\xe4' in file test.py on line 3, but no encoding
- Integer.parseInt()和这个Integer.valueOf()的详解
- ssl http tcp/ip 协议区别与联系
- 集合框架——Collection
- 为什么你写的下载文件总是只能下到服务器本地