请选择 进入手机版 | 继续访问电脑版
查看: 211|回复: 0

unity技能CD的实现方式

[复制链接]

404

主题

414

帖子

1402

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1402

最佳新人

发表于 2018-11-15 09:23:43 | 显示全部楼层 |阅读模式
技能CD的实现方式。

打开Unity新建一个项目,

创建一个技能的按钮(Button),顶级导航栏GameObject->UI->Button

可以看到,我们的Button已经创建好了


可以看到一个Canvas(画布),ps:做屏幕适配就需要给画布添加一个组件

具体的创建按钮,要是不会的可以搜一下

创建好一个技能按钮之后,再创建一个遮罩,也就是Image,和创建按钮的步骤一样

接着点击我们刚刚创建的Image,在Inspector找到下图的控件




点击Image Type 选择 Filled



Fill Origin 从哪里开始,

Fill Amount填满量。

Clockwise 没错,顺时针方向。

Preserve Aspect 图像的宽度和高度是保持原始比例的还是重新调整



设置完成,创建一个C#代码(注意,那个引号部分要写你场景中的图片实例名称)







  1. using UnityEngine;
  2. using System.Collectio自行去掉汉字ns;
  3. using UnityEngine.UI;

  4. public class v1 : MonoBehaviour
  5. {
  6.     //UIImageButton sprite;

  7.     //public GameObject sprites;
  8.     Image sprite;
  9.     public GameObject sprites;
  10.     // Use this for initialization
  11.     bool isskillcd = false;

  12.     /*
  13.      * 开始获取到实例对象
  14.      */
  15.     void Start()
  16.     {

  17.         sprite = gameObject.GetComponent<Image>();
  18.         sprites = GameObject.Find("Image");
  19.         /*
  20.         开始先把遮罩隐藏掉
  21.          */
  22.         sprites.SetActive(false);
  23.         //sprite.fillAmount = 0;

  24.         Debug.Log("" + sprite);


  25.         Debug.Log(".." + sprite.fillAmount);
  26.     }

  27.     public void skillsstart()
  28.     {
  29.         isskillcd = true;
  30.         /*
  31.          点击技能按钮之后显示技能cd(遮罩)
  32.          */
  33.         sprites.SetActive(true);

  34.     }
  35.     // Update is called once per frame
  36.     void Update()
  37.     {
  38.         /*
  39.          根据isskillcd值来判断是不是点击了,是不是该进行运算了
  40.          */
  41.         if (isskillcd == true)
  42.         {
  43.             sprite.fillAmount -= 0.01f;

  44.             Debug.Log(".." + sprite.fillAmount);

  45.             /*
  46.              当遮罩的填满量(fillAmount)为零的时候,重新把遮罩的填满量为1
  47.              这里1表示fillAmount为填满,0表示空,
  48.              */
  49.             if (sprite.fillAmount == 0)
  50.             {
  51.                 sprite.fillAmount = 1;

  52.                 sprites.SetActive(false);
  53.             }
  54.         }

  55.         //  sprite.fillAmount -= 0.1f;
  56.     }
  57. }
复制代码



把脚本拖到新建的Image上,记得给建好的Image一个图片,

然后点击我们创建的Button,在On Click



把Image拖到红色方框内,在红色的椭圆里面,选择我们刚刚写的那个脚本



运行一下看一下效果,


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表