Unity简单实现技能读条CD

学习目标:

学习常见游戏(如英雄联盟)技能CD进入读条


学习内容:

学习UI界面上下层级关系

学习面板的各种属性

如何实现技能读条CD呢

先来看看实际效果吧(先点击鼠标左键)


代码以及实际内容展示:

首先我们,要有一个图标,一个半透明的条,一个计时器文本Text

为了方便我们就做个正方形⑧

相信聪明的你,一定会先把场景调整2D 吧(不会吧不会吧????)

先创建一个子对象Image,然后再RGB color面板上将最后一个A调成半透明

然后创建好字体,调整好大小以及摆放位置,然后关键来了!

我们先将子图片对象Image改名为Mask,然后在Image组件里开整!

将Image Type调成Filled模式,然后下面就会多出几行,拉动Fill Amount的进度条(只有0——1),会发现半透明的图片就会旋转式消失,这就是转技能CD!

Fill Method是指填充是按什么角度,360°表示旋转一周的填充,180°表示半周的填充

Fill Origin表示的从哪里开始,Top表示从上面开始填充

ClockWise表示顺时针还是逆时针,如果不勾选,Fill Amount从1到0就是顺时针

介绍完这些后,就可以开始写代码了

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SkillsCD : MonoBehaviour {

    [Header("技能CD")]
    [Range(1,100)]
    public float cd = 3f;

    private Text myText;

    private Image myImage;

    private bool beginCD = false;
    private void Awake()
    {
        myImage = GetComponent<Image>();
        myText = transform.GetChild(0).GetComponent<Text>();
    }

    private void Update()
    {
        //如果按下鼠标左键
        if (Input.GetMouseButtonDown(0) &&beginCD == false)
        {
            beginCD = true;
            //技能开始进入CD
            myImage.fillAmount = 1;
        }
        if (beginCD)
        {
            //要将fillAmount,!!fillAmount的范围只能是0-1,所以还要除以个CD
            myImage.fillAmount -= Time.deltaTime / cd;

            myText.text = (myImage.fillAmount * cd).ToString("0.00");
            if (myImage.fillAmount == 0)
            {
                beginCD = false;
            }
        }
        
    }
}

要将fillAmount,!!fillAmount的范围只能是0-1,所以还要除以个CD
            myImage.fillAmount -= Time.deltaTime / cd;

同时,我们还要注意如何获取字体的组件

myText = transform.GetChild(0).GetComponent<Text>();

这就是子对象!


学习产出:

注意Image Type下面的四个属性,熟练掌握即可

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值