查看: 2728|回复: 0

unity技能CD的实现方式

[复制链接]

906

主题

954

帖子

3950

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3950

最佳新人

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

打开Unity新建一个项目,

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

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


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

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

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

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


80_3_1a98e88e71e45c9.png

点击Image Type 选择 Filled



Fill Origin 从哪里开始,

Fill Amount填满量。

Clockwise 没错,顺时针方向。

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



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

80_3_0a13979bbaf91cd.jpg


80_3_3f90cc8b2b877d0.jpg


  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

80_3_f042dec8e3276ab.jpg

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

80_3_b8e537ea19a140d.jpg

运行一下看一下效果,


80_3_2a48c514265fdbc.jpg

关注galaxixv,官方微信公众号。
GALAXIX UE4 讨论学习群 140439020
UE4精英学习群  12762592
UNITY学习群   194092348
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


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