码迷,mamicode.com
首页 > 其他好文 > 详细

使用NGUI制作技能冷却图标

时间:2015-10-13 13:52:43      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:

最近在学习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 购买正版,谢谢!
 

使用NGUI制作技能冷却图标

标签:

原文地址:http://www.cnblogs.com/AhrenLi/p/4874331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!