在制作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组件的使用方法可以在制作小地图时运用到
这样一个简单技能冷却效果制作完毕,技能图片简陋,多多包涵!!!