UGUI技能冷却效果制作-unity3d之2d游戏开发视频教程入门第十三课

在Unity3D中,我们可以使用UGUI系统来制作技能冷却效果。以下是视频教程,以及一个简单的供参考步骤和代码示例。

1、创建一个技能冷却计时器脚本,该脚本将用于控制技能的冷却时间和冷却条的显示。

using UnityEngine;
using UnityEngine.UI;

public class CooldownTimer : MonoBehaviour
{
    public Text cooldownText;
    public float cooldownTime = 10.0f; // 技能冷却时间为10秒
    public float cooldownDisplayTime = 5.0f; // 冷却时间在冷却条上显示5秒
    private float timer;

    private void Start()
    {
        timer = cooldownTime;
        cooldownText.text = "冷却(" + timer + "秒)";
    }

    private void Update()
    {
        if (timer > 0)
        {
            cooldownText.text = "冷却(" + timer + "秒)";
            cooldownText.color = Color.white;
            timer -= Time.deltaTime * cooldownDisplayTime;
            if (timer <= 0)
            {
                cooldownText.text = "已冷却";
                cooldownText.color = Color.red;
                StartCoroutine(ResetCooldown()); // 启动重置冷却时间的协程
            }
        }
    }

    private IEnumerator ResetCooldown()
    {
        yield return new WaitForSeconds(cooldownTime);
        // 在技能冷却时间到达后重置冷却时间,这里假设重置后技能又可以立即使用
        timer = cooldownTime;
        cooldownText.text = "冷却(" + timer + "秒)";
    }
}

2、创建一个技能释放的触发器脚本,该脚本将用于检测技能的释放并重置技能的冷却时间。

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

public class SkillTrigger : MonoBehaviour
{
    public Button skillButton; // 技能按钮,用于触发技能释放事件
    public Text cooldownText; // 冷却时间文本,用于显示技能的冷却时间
    public CooldownTimer cooldownTimer; // 技能冷却计时器脚本,用于控制技能的冷却时间
    private Skill skill; // 技能对象,用于表示要释放的技能

    private void Start()
    {
        // 获取技能对象,这里假设技能对象已经绑定到技能按钮上
        skill = skillButton.GetComponent<Skill>();
    }

    private void OnClick()
    {
        // 当点击技能按钮时,检测技能的冷却时间是否为0,如果是则释放技能并重置冷却时间,否则不做任何操作
        if (cooldownTimer.timer == 0)
        {
            skill.use(); // 释放技能
            cooldownTimer.timer = cooldownTimer.cooldownTime; // 重置冷却时间
        }
    }
}

3、在Unity3D中创建一个UI元素作为技能冷却条,并将其命名为“CooldownBar”。将“CooldownBar”中的文本组件命名为“cooldownText”。将“CooldownBar”中的按钮组件命名为“skillButton”。将“CooldownTimer”脚本拖放到“CooldownBar”中的“cooldownText”组件上。将“SkillTrigger”脚本拖放到“skillButton”组件上。将“CooldownTimer”脚本拖放到“SkillTrigger”脚本上。将技能对象绑定到“SkillTrigger”脚本的“skill”变量上。完成以上步骤后,就可以运行程序测试技能冷却效果了。


往期视频回顾:

01第一课【unity的介绍】
02第二课【我的第一个项目】
03第三课 【创建游戏对象 GmaeObject】
04第四课【 创建游戏对象 下】
05第五课 【序列图剪切工具】
06第六课【 我的第一个脚本】

07第七课【 代码控制游戏物体】

08第八课【代码获取游戏对象的方法】

09第九课【 碰撞器和刚体的介绍】

10第十课 【动画的制作 (上)】

11第十一课【动画的制作 (下)】

12第十二课 【代码切换动画状态】

UGUI技能冷却效果制作-unity3d之2d游戏开发视频教程
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享