使用NGUI制作技能冷却图标

最近在学习NGUI,有些小的知识点,个人觉得很不错,就记录下来了,毕竟好记性不如烂笔头,温故知新。

  1. 首先导入NGUI插件,插件我会在文章下面给出链接。
  2. 导入NGUI后,会在菜单栏,看到NGUI的按钮,我们首先创建一个Sprite,重命名为Skill,为其选择图集和精灵,调整Skill的大小和位置,我这里Size 为200*200.
  3. 在Hierarchy面板中选中Skill,然后再Scene面板中,右键创建一个Sprite,重命名为Filled,为其选择图集和精灵,最好选择一个单色的精灵,然后,Type选择Filled(核心),修改Color Tint,为黑色,透明度调整到一个合适的位置 ,我这里为100,(可以自行把握)。
  4. 在Hierarchy面板中选中Skill,然后再Scene面板中,右键创建一个Lable,重命名为Time,为其选择字体 ,然后修改字体大小(40),和Size(80*50),调整其位置,让其位于中央,为其加上边框,在Effect哪里选择OutLine,修改边框颜色,让其更好看些,最后删除Text中的内容。
  5. 在Hierarchy面板中选中Skill,然后再Scene面板中,右键创建一个Lable,重命名为Key,为其选择字体,然后修改字体大小(40),和Size(80*50) ,然后调整其位置到Skill的右下角,修改Text中的内容为一个技能快捷按键提示,我这里为A,然后根据个人喜好可以为其加上一些效果和颜色的。我这里就不加了。
  6. 现在我来来添加脚本控制技能的冷却。选择Skill,添加脚本,命名为Skill。打开脚本,编辑。

using UnityEngine;
using System.Collections;

public class SKill : MonoBehaviour
{
    public float skillColdTime = 5f;     //冷却时间,可以在外部修改

private UILabel timeLabel;     //显示倒计时的lable
    private UISprite filledSprite;   //显示技能快捷键的lable
    private bool isCold = false; //是否在冷却
    private float timer = 0f;   //计时器
    void Start()
    {
        timeLabel = transform.FindChild("Time").GetComponent<UILabel>();
        filledSprite = transform.FindChild("Filled").GetComponent<UISprite>();
        timeLabel.gameObject.SetActive(false);       //一开始不显示冷却时间和技能快捷按键
        filledSprite.gameObject.SetActive(false);
    }
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.A) && !isCold)     //当设置的快捷键按下,
        {
            print("Biu~Biu~");
            isCold = true;    //开始冷却
            timer = skillColdTime;     //计时器等于冷却时间
            timeLabel.text = ((int)skillColdTime).ToString() + " s";   //显示冷却时间,这里只显示整数
            timeLabel.gameObject.SetActive(true);    //激活显示冷却时间lable
            //每次按键按下,都要重置一下fillAmount,让其完全覆盖技能图标
            //fillAmount为0到1之间的值 ,0为不显示,1为全部显示
            filledSprite.fillAmount = 1f;      
            filledSprite.gameObject.SetActive(true);  //激活前置背景的精灵
        }
        if (isCold)
        {
            timer -= Time.deltaTime;      //倒计时
            timeLabel.text = ((int)timer).ToString() + " s";   //显示倒计时,这里只显示整数
            filledSprite.fillAmount = timer / skillColdTime;  //根据比例来显示前置背景的经历的显示比例,
            if (timer <= 0f)      //及时到了,
            {
                isCold = false;      //冷却结束
                timeLabel.gameObject.SetActive(false);   //隐藏显示
                filledSprite.gameObject.SetActive(false);
            }
        }
    }

}

至此,保存脚本,回到编辑器中,我们运行游戏,当我们按下A键时 ,会看到,

像这样,一个简单的技能冷却就Ok了。

NGUI3.9.1: 链接:http://pan.baidu.com/s/1sjvbOBV 密码:30xf

如果您要使用NGUI做商业用途,请您去AssetStore 购买正版,谢谢!

时间: 2024-10-10 09:05:29

使用NGUI制作技能冷却图标的相关文章

libgdx 制作技能冷却图标

本篇随笔记录如何制作一个技能冷却的图标.抛砖引玉了,如需实际应用还得好好整理代码. 表示技能冷却,计时等无非就两种吧,一是长条状,参照/扩展progressbar即可,另外一个就是方形或者圆形的了吧. 很多有技能条的游戏UI一般都是用的是方形技能图标,如魔兽世界,暗黑三,War3..... 在这里我们试着做一个出来,先看看效果图吧(很次,见尿了,以后可以在指针和边框上加上动画或粒子效果) 该组件分为4层,从下往上依次为:技能原图标ground,裁剪效果层,指针层,外边框.当然也可以加入更多,或者

NGUI的技能冷却实现

使用NGUI实现技能冷却的原理是这样的:在表示技能的Sprite上加一个半透明的Sprite,将类型设置为filled类型,Fill Dir设置为Radial360,通过程序调节Fill Amount就可以模拟技能从冷却到被活的一段时间内渐变的效果.如下图所示: 代码中一个标志位isCooling表示是否正在冷却,只有当按下释放技能的按键并且该标志位为false时才可以释放技能,释放完成后isCooling立即变为true,然后冷却的部分在每帧都会减少,直至完全消失.代码如下: 1 using

unity使用 NGUI制作技能冷却效果的思路

把NGUI精灵的type改为filled 然后更改fill Amount 这个值 就会实现效果

(转)NGUI制作转圈的技能CD特效

在技能图标上面放个半透明的精灵,用来做技能冷却的特效,如下图所示,我就用NGUI中的图标来带代替. NGUI制作转圈的技能CD特效 然后修改一下特效的精灵类型,它是在技能图标上面悬浮半透明可旋转的精灵.如下图所示, Sprite Type:设置成Filled Fill Dir:设置Radial 360 . Invert Fill:顺时针旋转或者逆时针旋转. NGUI制作转圈的技能CD特效 到这里就简单了,只要在程序中动态的修改Fill Amount的数值就可以了.写了一段简单的代码,让它一直旋转

纯css3样式属性制作各种图形图标

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

SkillButton 技能冷却

#pragma once #include "cocos2d.h" USING_NS_CC; class SkillButton :public Node { public:  SkillButton();  ~SkillButton();                            //技能标记  static SkillButton * createSkillButton(float skillCD,const char* normalImage,const char* 

NGUI制作ScrollView详解

教程说明 版本:NUGI 3.5.1 1.创建NGUI对象 2.创建ScrollView对象 3.为ScrollView添加UIGrid控件(要点1后面会说明) 4.给ScrollView添加滚动包含的对象,避免太复杂没法把握制作原理,只用简单的Sprite 5.依次给sprite添加触控响应(要点2,不添加就等着没效果) 和 拖动操作方式(要点3) 6.复制多个sprite,这时你发现这些都叠加在一起,这时UIGrid就发挥作用了,你只管运行看效果就知道,这些sprite会自动排版,强大的NG

NGUI制作字体的三种方法

主要参考两篇博文: (1).NGUI制作字体的三种方法 (2).使用位图字体工具BMFont从图片生成自定义字体 1.BMFont下载地址 http://www.angelcode.com/products/bmfont/ 2.BMFont使用方法 http://momowing.diandian.com/post/2013-01-24/40046239211 首先打开Font Settings,选择要制作的字体.可以从Font列表中选择一种字体,也可以通过Add font files导入一个t

NGUI制作 《九宫格》 图片

什么是九宫格图片? 就是一张图片的上下左右四个角是固定的,无论X/Y被拉伸多大,图片都不会失真 效果图 ------> 那在NGUI里面怎么做到呢 1 首先你要把图片添加到NGUI图集里,点击Edit按钮 2 在新弹出的界面里面,输入拉伸的线条的参数 3 在调用的地方,记得把精灵的类型,修改为Sliced OK,大功告成 NGUI制作 <九宫格> 图片