A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在文字预制体HUD上新建一个HUD脚本,代码如下

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

/// <summary>
/// 控制伤害显示
/// </summary>
public class HUD : MonoBehaviour
{
    /// <summary>
    /// 滚动速度
    /// </summary>
    private float speed = 1.5f;

    /// <summary>
    /// 计时器
    /// </summary>
    private float timer = 0f;

    /// <summary>
    /// 销毁时间
    /// </summary>
    private float time = 0.8f;

    private void Update()
    {
        Scroll();
    }

    /// <summary>
    /// 冒泡效果
    /// </summary>
    private void Scroll()
    {
        //字体滚动
        this.transform.Translate(Vector3.up * speed * Time.deltaTime);
        timer += Time.deltaTime;
        //字体缩小
        this.GetComponent<Text>().fontSize--;
        //字体渐变透明
        this.GetComponent<Text>().color = new Color(1,0,0,1 - timer);
        Destroy(gameObject,time);
    }

}
在Canvas上新建一个脚本HudText,代码如下

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

/// <summary>
/// 控制伤害效果的生成,附在Canvas上
/// </summary>
public class HudText : MonoBehaviour
{
    /// <summary>
    /// 文字预制体
    /// </summary>
    public GameObject hudText;

    private void Update()
    {
        Rotation();
    }

    /// <summary>
    /// 生成伤害文字
    /// </summary>
    public void HUD(int damage)
    {
        GameObject hud = Instantiate(hudText, transform)as GameObject;
        hud.GetComponent<Text>().text = "-" + damage.ToString();
    }

    /// <summary>
    /// 画布始终朝向摄像机
    /// </summary>
    void Rotation()
    {
        this.transform.LookAt(Camera.main.transform);
    }
}


使用方法

1、把HUD脚本添加到文字预制体上

2、把HudText脚本添加到Canvas上,文字预制体拖到脚本中的Hud Text字段

3、调用Hud Text脚本的HUD方法,参数为伤害数值
---------------------
【转载,仅作分享,侵删】
作者:吾亦烦
原文:https://blog.csdn.net/Dawson_Ho/article/details/86835776
版权声明:本文为博主原创文章,转载请附上博文链接!

1 个回复

倒序浏览
奈斯,感谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马