您的位置:首页 > 移动开发 > Unity3D

游戏技能冷却效果的实现

2017-07-31 19:02 429 查看

前言:

今天折腾了好长时间去写这个效果,刚开始实现了这个效果,只是他是每一帧跳1/4个圆(4s),这样的效果显得很生硬。于是我就换思路,结果越写越烂,甚至到最后效果都出不来了。讲真,程序写到这个地步的时候,应该停下来,回到需求,重新分析。由于使用的是UGUI,它没有NGUI那么方便,自己探索了蛮久,才做出来。

效果图:



脚本:

public class SkillsCoolingController : MonoBehaviour
{
public float coolingTime = 4;
private float time;//冷却剩余时间

private Image image;
private Button btn;

private void Start()
{
image = GetComponent();
btn = GetComponent();
}

private void Update()
{
if (time > 0)
{
time -= Time.deltaTime;
//fillAmount:1~0渐变,实现技能冷却效果
image.fillAmount = time / coolingTime;
}
else
{
image.fillAmount = 0;
btn.interactable = true;
}
}

public void OnMouseDown()
{
btn.interactable = false; //取消按钮交互
time = coolingTime;
}
}


写在最后:

这个效果的实现其实不难,但是自己在思考的时候,有时候会想得特别多,以至于一个简单的问题复杂化了。还有就是遇到问题的时候,前面还能保持清醒的头脑,去理智分析。但是时间久了,自己心态就不行了,很急躁,思路什么的也没有了。这个以后还是要多注意下,实在是头绪全无,就出去放松下,程序猿真的真的真的不能钻牛角尖!!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  unity 技能冷却