Unity 3D 技能释放的脚本 技能冷却时间

首先看下运行的截图
Unity 3D 技能释放的脚本 技能冷却时间_第1张图片
我们可以看到通过不同的按钮可以释放不同的技能
这里我用的是NGUI来搭建的场景
首先添加一个UIPanle
然后是一个UISprite
然后再是一个遮挡的UISprite 我们通过改变Fill Amount的值来对图片进行360度的旋转剪切
然后添加UILable 添加冷却时间和按键提示
下面我写了一个SkillCp.cs的脚本来实现上面的功能

using UnityEngine;
using System.Collections;

public class SkillCp : MonoBehaviour {

    UISprite Sprite;
    UILabel Lable;
    public string SpriteName;
    public string LableName;

    public string Q;//用来对不同的按键进行选择
    // Use this for initialization
    void Start () {
        Sprite = transform.Find(SpriteName).GetComponent();//找到对应的图片
        Lable = transform.Find(LableName).GetComponent();//找到对应的时间
    }
    bool isCude = false;
    public float TimeSpeed=2;
    // Update is called once per frame
    void Update () {
        if (Q == "Q")
        {
            if (Input.GetKey(KeyCode.Q) && !isCude)
            {
                Sprite.fillAmount = 1;
                Lable.text = TimeSpeed.ToString("f1");
                isCude = true;
            }
        }
        if (Q == "E")
        {
            if (Input.GetKey(KeyCode.E) && !isCude)
            {
                Sprite.fillAmount = 1;
                Lable.text = TimeSpeed.ToString("f1");
                isCude = true;
            }
        }
        if (Q == "W")
        {
            if (Input.GetKey(KeyCode.W) && !isCude)
            {
                Sprite.fillAmount = 1;
                Lable.text = TimeSpeed.ToString("f1");
                isCude = true;
            }
        }
        if (Q == "R")
        {
            if (Input.GetKey(KeyCode.R) && !isCude)
            {
                Sprite.fillAmount = 1;
                Lable.text = TimeSpeed.ToString("f1");
                isCude = true;
            }
        }
        if (isCude)
        {
            Sprite.fillAmount -= (1f / TimeSpeed) * Time.deltaTime;//对图片按照时间进行360度的旋转剪切
            Lable.text = (TimeSpeed * Sprite.fillAmount).ToString("f1");//改变冷却时间
            if (Sprite.fillAmount <= 0.05f)
            {
                isCude = false;
                Sprite.fillAmount = 0;
                Lable.text = "";
            }
        }
    }
}

你可能感兴趣的:(Unity,3D,开发从入门到精通)