返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Unity实现游戏伤害数字显示HUD的方法
  • 251
分享到

Unity实现游戏伤害数字显示HUD的方法

2024-04-02 19:04:59 251人浏览 薄情痞子
摘要

目录伤害数字显示HUDDemo展示HUDPopup类伤害数字显示HUD 游戏中收到伤害掉血,会有飘动的伤害数值; 可以使用OnGUI中GUI.Label来实现; 可自定义字体,颜色,

伤害数字显示HUD

游戏中收到伤害掉血,会有飘动的伤害数值;

可以使用OnGUI中GUI.Label来实现;

可自定义字体,颜色,大小等;

如果需要更好看的数字特效,可以手动添加;

普通字体不够好看可以使用插件FontEditor自定义;

Demo展示

HUDPopup类

飘血数字类,创建一个空物体,将这个脚本挂上去,再将这个物体拖成预制体;


public class HUDPopup : MonoBehaviour 
{
    //目标位置  
    private Vector3 mTarget;  
    //屏幕坐标  
    private Vector3 mScreen;  
    //伤害数值  
    public int Value;
    //文本宽度  
    public float ContentWidth;  
    //文本高度  
    public float ContentHeight;
    //GUI坐标  
    private Vector2 mPoint;
    //销毁时间  
    public float FreeTime = 1.5F;
    public Font font;
    public Color color;
    public int fontSize;
    public float speed;
    void Start ()
    {
        //获取目标位置  
        mTarget = transfORM.position;  
        //获取屏幕坐标  
        mScreen = Camera.main.WorldToScreenPoint(mTarget);  
        //将屏幕坐标转化为GUI坐标  
        mPoint = new Vector2(mScreen.x, Screen.height - mScreen.y);  
        //开启自动销毁线程  
        StartCoroutine("Free");  
    }  
  
    void Update()  
    {  
        //使文本在垂直方向山产生一个偏移  
        transform.Translate(Vector3.up * speed * Time.deltaTime);
        //重新计算坐标  
        mTarget = transform.position;  
        //获取屏幕坐标  
        mScreen = Camera.main.WorldToScreenPoint(mTarget); 
        //将屏幕坐标转化为GUI坐标  
        mPoint = new Vector2(mScreen.x, Screen.height - mScreen.y);
    }  
  
    void OnGUI()  
    {  
        //保证目标在摄像机前方  
        if(mScreen.z>0)  
        {  
           //内部使用GUI坐标进行绘制  
           GUIStyle style = new GUIStyle();
           style.fontSize = fontSize;
           style.font = font;
           style.normal.textColor = color;
           GUI.Label(new Rect(mPoint.x, mPoint.y, ContentWidth, ContentHeight), "-"+Value.ToString(),style);
        }  
    }  
  
    IEnumerator Free()  
    {  
        yield return new WaitForSeconds(FreeTime);  
        Destroy(this.gameObject);  
    }  
}  

一些自定义属性,默认Color的透明度是0,如果出现不显示,可以看看这里;

使用时,在需要有掉血数字的物体上的脚本中实例化HUDPopup,创一个HUD预制体对象,放在该物体的子节点下某个位置(一般在怪物头顶创建一个空节点,用来当HUD的父物体);

测试类代码:


public class Test : MonoBehaviour
{
    public GameObject popupDamage;
    public Transform hudPos;
    
    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            GameObject mObject = (GameObject)Instantiate(popupDamage, hudPos.position, QuaterNIOn.identity);
            mObject.GetComponent<HUDPopup>().Value = Random.Range(20, 40);
        }
    }
}

到此这篇关于Unity实现游戏伤害数字显示HUD的方法的文章就介绍到这了,更多相关Unity 伤害数字显示HUD内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Unity实现游戏伤害数字显示HUD的方法

本文链接: https://lsjlt.com/news/155339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Unity实现游戏伤害数字显示HUD的方法
    目录伤害数字显示HUDDemo展示HUDPopup类伤害数字显示HUD 游戏中收到伤害掉血,会有飘动的伤害数值; 可以使用OnGUI中GUI.Label来实现; 可自定义字体,颜色,...
    99+
    2024-04-02
  • shell实现猜数字小游戏的方法
    这篇文章给大家分享的是有关shell实现猜数字小游戏的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。shell实现猜数字游戏的具体代码如下#!/bin/bash# 猜数字编程游戏# 系统随...
    99+
    2023-06-09
  • JavaScript实现猜数字小游戏的方法
    小编给大家分享一下JavaScript实现猜数字小游戏的方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2.可以处理表单,检...
    99+
    2023-06-14
  • Unity存储游戏数据的方法有哪些
    本篇内容介绍了“Unity存储游戏数据的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Unity中,常用的数据存储方法包括Pla...
    99+
    2023-07-05
  • 基于Unity实现3D版2048游戏的示例代码
    分享三个无聊的时候用Unity写的小游戏 包含 2048 2D版本和3D版本 Voodoo的小游戏 Sticky block 开源仓库: https://gitee.com/wel...
    99+
    2023-02-02
    Unity实现2048游戏 Unity 2048游戏 Unity 2048 Unity 游戏
  • C语言实现猜数字游戏的两种方法
    目录前言一、游戏描述二、代码实现1.生成游戏菜单2.构建主函数 3.构建游戏函数 三、二分法实现猜数前言 猜数字小游戏是我们大多数人学习C语言时都会了解到的一个有...
    99+
    2024-04-02
  • Unity存储游戏数据的多种方法小结
    目录1 PlayerPrefs: Unity自带的一种简单的键值存储系统2 ScriptableObject: Unity中最灵活的数据管理工具2.1 如何手动创建和修改数据文件2....
    99+
    2023-02-22
    Unity存储游戏数据 Unity存储数据
  • Python实现猜拳与猜数字游戏的方法详解
    至此,我们的 Python零基础入门篇 的系列专栏到今天基本上算是结束了。今天没有任何的知识点,只是运用我们之前学习过的知识做两个小游戏的案例。第一个是模拟猜拳的小游戏,第二个就是猜...
    99+
    2024-04-02
  • React中井字棋游戏的实现示例
    目录需求分析实现分析涉及的组件涉及的状态编码实现项目初始化定义各个组件的props/stateSquare组件propsBoard组件propsGame组件state各组件代码Squ...
    99+
    2022-11-13
    React 井字棋游戏
  • 纯CSS3实现井字棋游戏的示例
    这篇文章给大家分享的是有关纯CSS3实现井字棋游戏的示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。运行效果:html<div class="tic-tac-toe">...
    99+
    2023-06-08
  • 传奇游戏云服务器登录问题:游戏角色名字不显示解决方法
    1. 检查游戏设置 首先,我们需要确保在游戏设置中没有禁用显示角色名字的选项。打开游戏设置菜单,查找与角色名字相关的选项,确保其处于启用状态。如果选项已经启用但问题仍然存在,请尝试禁用并重新启用该选项,然后保存设置并重新登录游戏。 2. ...
    99+
    2023-10-27
    游戏 解决方法 角色
  • C语言实现猜数字小游戏的示例代码
    目录一、猜数字小游戏1.演示效果2.完整代码二、代码解析1.游戏主体函数2.菜单函数3.头文件以及主函数一、猜数字小游戏 使用循环语句、分支语句和函数实现,游戏内容为输入0~100之...
    99+
    2022-11-13
    C语言猜数字游戏 C语言猜数字 C语言 游戏
  • Python实现不一样的猜数字游戏的示例代码
    目录前言正文一、运行环境二、代码展示三、效果展示前言 日子从不亏欠,每一个努力向上的人, 未来的走运, 都是过往尽力的积累。 人勤春来早,奋进正当时。新春伊始,我们迎来了2023年开...
    99+
    2023-02-02
    Python猜数字游戏 Python猜数字 Python 游戏
  • Android编程实现EditText字数监听并显示的方法
    本文实例讲述了Android编程实现EditText字数监听并显示的方法。分享给大家供大家参考,具体如下: 在开发应用的时候,经常会限制用户输入的字数,比如发表评论或者其它什么...
    99+
    2022-06-06
    edittext 监听 方法 Android
  • JavaScript实现生命游戏的方法
    这篇文章主要介绍JavaScript实现生命游戏的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript是一种什么语言javascript是一种动态类型、弱类型的语言,基于对象和事件驱动并具有相对安全...
    99+
    2023-06-14
  • 利用Random类常用方法实现一个猜数字游戏
    本篇内容介绍了“利用Random类常用方法实现一个猜数字游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • 基于Vue3实现数字华容道游戏的示例代码
    目录前言环境思路实现GameCntGameToolGamePassGameTipMenu最后前言 恰逢春之四月,天气忽热忽凉,遇游戏大赛,以笨拙之技,书一篇小文。 游戏规则:存在n*...
    99+
    2024-04-02
  • Shell脚本实现的猜数字小游戏
    生成的密码和用户输入可以接受重复数字。 所以相对一般规则的猜数字可能难度要大不少。 本版本规则: A--数字对,位置也对 B--排除A的结果后,数字对,但位置不对 开始后,系统化初始化一个4位可重复数字,如...
    99+
    2022-06-04
    小游戏 脚本 数字
  • java实现简单的猜数字小游戏
    本文实例为大家分享了java实现简单的猜数字的具体代码,供大家参考,具体内容如下 题目描述: 猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源...
    99+
    2024-04-02
  • python实现模拟数字的魔术游戏
    游戏介绍 在游戏中,魔术师要每位观众心里想一个三位数abc (a、b、c分别是百位、十位和个位数字),然后魔术师让观众心中记下acb、bac、bca、cab、cba五个数以及这5个数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作