在制作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 initializationvoid Start () {currentTime = coolingTimer;}// Update is called once per framevoid 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组件的使用方法可以在制作小地图时运用到
这样一个简单技能冷却效果制作完毕,技能图片简陋,多多包涵!!!