在制作ARPG等游戏时,主角的技能往往需要的到冷却才能释放

本文介绍在Unity中如何简单实现技能冷却效果

【Mask组件的使用】

首先制作技能图标

创建一个UI->Image

Image选择Unity自带的圆形图片

在Image下添加一个按钮作为子节点,并适当放大按钮

选择一张精灵图片作为按钮图案

在Image下添加Mask组件

Mask中文名叫面具

该组件的作用是 只显示Image与子节点重合部分的图案


这样一个简单的圆形技能图标做好了

【技能计时器】

所谓技能计时器是在技能冷却时一层半透明图标旋转效果


继续往Canvas画布上添加一个Image

将该Image的Color属性设置为黑色并半透明

将Image Type属性改动为Filled(具体如下图)


这样改变Fill Amount值,将改变旋转大小

这里注意的是,取消Raycast Target属性的勾选,不然按钮将不能接收响应

【代码控制】

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

public class SkillCoolingManager : MonoBehaviour 
{
    //冷却周期
    public float coolingTimer = 2.0f;

    private float currentTime = 0.0f;

    //冷却图片
    public Image coolingImage;

	// Use this for initialization
	void Start () 
    {
        currentTime = coolingTimer;
	}
	
	// Update is called once per frame
	void Update () 
    {
        if (currentTime < coolingTimer)
        {
            currentTime += Time.deltaTime;
            //按时间比例计算出Fill Amount值
            coolingImage.fillAmount = 1 - currentTime / coolingTimer;
        }
	}

    public void OnBtnClickSkill()
    {
        if (currentTime >= coolingTimer)
        {
            currentTime = 0.0f;

            coolingImage.fillAmount = 1.0f;
        }
    }
}


Mask组件的使用方法可以在制作小地图时运用到

这样一个简单技能冷却效果制作完毕,技能图片简陋,多多包涵!!!大笑


Logo

苏州本地的技术开发者社区,在这里可以交流本地的好吃好玩的,可以交流技术,可以交流招聘等等,没啥限制。

更多推荐