【千锋合集】史上最全Unity3D全套教程|匠心之作_哔哩哔哩_bilibilip248
越在层级面板的上面,图层靠底层,否则图片靠上层
![](https://img-blog.csdnimg.cn/c65828369af547258471778f99414841.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcmVud2VuMTU3OQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
?![](https://img-blog.csdnimg.cn/cb92d3c12ae44564aa8d5d03fc7e09bd.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcmVud2VuMTU3OQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
?
using UnityEngine; using UnityEngine.UI;
public class SkillCD : MonoBehaviour { ? ? [Header("技能CD时间")] ? ? [Range(1,100)] ? ? public float cd=3f; ? ? //当前图片组件 ? ? private Image maskImage; ? ? //计时器 ? ? private float timer = 0; ? ? //开始转CD ? ? private bool beginCD = false; ? ? // Use this for initialization ? ? private void Awake() ? ? { ? ? ? ? //找到组件 ? ? ? ? maskImage = GetComponent<Image>(); ? ? } ?? ?// Update is called once per frame ?? ?void Update () { ? ? ? ? if (Input.GetMouseButtonDown(0)&&!beginCD) { ? ? ? ? ? ? Debug.Log("使用技能"); ? ? ? ? ? ? //设置填充值为1 ? ? ? ? ? ? maskImage.fillAmount = 1; ? ? ? ? ? ? //开始转CD ? ? ? ? ? ? beginCD = true; ? ? ? ? } ? ? ? ? if (beginCD) { ? ? ? ? ? ? //转CD,填充值减少 ? ? ? ? ? ? maskImage.fillAmount -= Time.deltaTime/cd; ? ? ? ? ? ? //cd转完了,可以再次使用该技能 ? ? ? ? ? ? if (maskImage.fillAmount==0) { ? ? ? ? ? ? ? ? beginCD = false; ? ? ? ? ? ? } ? ? ? ? } ?? ?} }
![](https://img-blog.csdnimg.cn/98ced31d32594a0ea7f043c1ff8e9059.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcmVud2VuMTU3OQ==,size_11,color_FFFFFF,t_70,g_se,x_16)
?![](https://img-blog.csdnimg.cn/a99f5c65f6e84540a61258fb5d15fe01.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAcmVud2VuMTU3OQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
?
using UnityEngine; using UnityEngine.UI;
public class SkillCD : MonoBehaviour { ? ? [Header("技能CD时间")] ? ? [Range(1,100)] ? ? public float cd=3f; ? ? //当前图片组件 ? ? private Image maskImage; ? ? //技能CD时间显示文本 ? ? private Text cdText; ? ? //计时器 ? ? private float timer = 0; ? ? //开始转CD ? ? private bool beginCD = false; ? ? // Use this for initialization ? ? private void Awake() ? ? { ? ? ? ? //找到组件 ? ? ? ? maskImage = GetComponent<Image>(); ? ? ? ? //找到文本组件 ? ? ? ? cdText = transform.GetChild(0).GetComponent<Text>(); ? ? } ?? ?// Update is called once per frame ?? ?void Update () { ? ? ? ? if (Input.GetMouseButtonDown(0)&&!beginCD) { ? ? ? ? ? ? Debug.Log("使用技能"); ? ? ? ? ? ? //设置填充值为1 ? ? ? ? ? ? maskImage.fillAmount = 1; ? ? ? ? ? ? //开始转CD ? ? ? ? ? ? beginCD = true; ? ? ? ? } ? ? ? ? if (beginCD) { ? ? ? ? ? ? //转CD,填充值减少 ? ? ? ? ? ? maskImage.fillAmount -= Time.deltaTime/cd; ? ? ? ? ? ? //显示技能可以再次使用的剩余时间 ? ? ? ? ? ? cdText.text = (maskImage.fillAmount * cd).ToString("0.00"); ? ? ? ? ? ? //cd转完了,可以再次使用该技能 ? ? ? ? ? ? if (maskImage.fillAmount==0) { ? ? ? ? ? ? ? ? cdText.text = ""; ? ? ? ? ? ? ? ? beginCD = false; ? ? ? ? ? ? } ? ? ? ? } ?? ?} }
|