Unity实现伤害飘字
虽然用的是2D模板,但是重要的实现部分基本2D和3D是一样的。
想要实现实现伤害飘字,首先就需要创建一个文本组件,这里我使用的是TextMeshPro_Text(UI)组件类型,建议在一个空对象底下直接创建一个Text类型的UI文本。
将Text组件内的字符格式根据你的需求设置好后,(颜色大小等要根据个人的使用习惯和不同场景下都有差异,但是基本都需要将字节居中)将其设置为预制体就行了。
然后如何生成字体在敌人头上呢?只需要让敌人在受到攻击的位置创建这个文本对象就可以了,然后将控制文本对象各种显示效果的脚本放置在文本对象中即可。
这是控制生成文本对象的代码
//该脚本要挂载都敌人组件上,在敌人的血条改变或者受到伤害时调用该方法float rand = Random.Range(-2, 2);//随机-2~2的值Vector3 new_position = transform.position;//将受到攻击的敌人的位置转换为Vector3//在位置上生成文本对象new_position.x += rand;GameObject gameObject = Instantiate(Text, new_position, Quaternion.identity);//给文本对象中的文本赋值,显示数值gameObject.GetComponentInChildren<Hurt_Text>().Init(-change);
随机值的作用就是为了使得生成数值不会集中在一个地方,因为有时候你的攻击频率太快可能导致几个字节重叠在一起,观感很不好。
这是控制文本对象运行的代码
public class Hurt_Text : MonoBehaviour
{private TMP_Text text;//字符文本组件float alpha;//阿尔法值,控制字体逐渐消失的效果[Range(0, 10)]public float speed;//飘动速度[Range(0, 1)]public float speed_weak;//速度衰弱[Range(0, 50)]public float dis_time;//消失时间[Range(0, 10)]public float weak_time;//开始衰弱时间public Color color;//文本颜色//这个必须提醒一下,必须使用Awake而Start不行,因为在上一段文本赋值时//到文本对象脚本的Start还没有执行到,会造成text为null异常void Awake(){alpha = 1;text = GetComponentInChildren<TMP_Text>();Destroy(gameObject, dis_time);text.color = color;}void Update(){transform.Translate(0, speed * Time.deltaTime, 0);//使字体向上移动if (speed > 0){speed -= speed_weak;//使得向上移动的速度逐渐减少}else if (speed <= 0 && weak_time >0){weak_time -= Time.deltaTime;//当速度为0后,字体颜色开始透明的时间}else if (alpha > 0 && weak_time <=0) {alpha -= 0.01f;//控制字体逐渐透明}text.color = new Color(text.color.r, text.color.g, text.color.b, alpha);//修改字体颜色,透明度等}public void Init(int hurt){text.text = hurt.ToString();//设置文本}
}
当然我要实现的效果是向上飘一定距离后停下,然后再在一定时间后开始缓慢消失,实现其它的效果时,你可以通过自己的理解改写,当然这里其实有点多余的部分,因为在alpha(控制字体颜色透明度,1的时候完全不透明,0就是完全透明)在到了0后其实字体就看不见了,这个时候直接销毁组件就行了,没必要设置消失时间,当然如果要实现其它的效果或者着不想要逐渐消失就可以保留。
不得不吐槽一下我在CSDN上看到的做unity伤害飘字有一部的解释对萌新太不友好了(对,萌新说的就是我自己),缺少详细的说明和代码过程解释,甚至有些在代码上不加注释......
来看看配合上期的追踪子弹最终的实现效果
![](/assets/blank.gif)
![](/assets/blank.gif)
Unity实现伤害飘字相关推荐
- [Unity][Animator][UGUI]伤害飘字跟随角色不停的移动
在相关资料1的基础上实现,伤害飘字 特效 跟随 玩家角色. 逻辑图 UIFollowManage using System.Collections.Generic; using UnityEngine ...
- [Unity][Animationamp;amp;Animator][特效]伤害飘字
角色受到伤害,伤害数值 在角色头顶 飘字. 有几种实现方法: 1.DOTWEEN 2.Unity自带的Animation&Animator 本文着重讲第2种实现方法. 设置Animator 的 ...
- 【unity造轮子】伤害飘字效果,封装代码
先看最终效果 创建一个飘字特效预制体 具体的大小按自己喜好设置 封装资源管理器 记得挂载飘字特效预制体 using UnityEngine;//资源管理器 public class ResourceM ...
- Unity 游戏飘字(伤害、状态等)
3d游戏中,角色或敌人受到伤害或者BUFF等处理需要特效,还需要飘字.下面将使用Unity预设来做飘字效果. 1.创建prefab(可以创建多种),以伤害为例: 2.飘字管理器: using Syst ...
- Unity 伤害飘血效果
Unity 伤害飘血效果 前言 一.效果演示 二.相关代码 前言 一个对于战斗中飘字飘血的功能,比较简单. 一.效果演示 字的颜色没调整好,所以有点不好看. 二.相关代码 根据自定义曲线控制飘字效果 ...
- dotween unity 延时_Unity教程-使用DoTween实现飘字效果教程
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 DoTween是一款比较强大的补间动画插件,本篇文章我们来学习下,利用DoTween来实现下飘字的效果,首先我们看下DoTween中几个方法: Seque ...
- Unity 战斗飘字飘血 ShootTextPro
前言,写了一个小工具,主要就是战斗中对应的飘字,源码相应的注释已经标注,非常方便自定义改动,其中ShootTextProController可以做成单例,传入对应的tranform即可,为了展示示例, ...
- 【Cocos2dx】飘字特效与碰撞检测
飘字特效主要常见与游戏里面的掉血表示伤害输出等.碰撞检测常见于一些横版过关或者跑酷的手游,判断是否有碰到食物,或者什么障碍物等,都是比较常见的功能,下面就用一个小例子,来说明这两个特效如何完成. 如下 ...
- Cocos2d-x扣血飘字特效用完你就消失--之游戏开发《赵云要格斗》(8)
这里是Evankaka的博客,欢迎大家前来讨论与交流------ 转载请注明出处http://blog.csdn.net/evankaka/article/details/42740575 本文这里 ...
最新文章
- 安装exchange server 2003服务器
- iOS 应用开发基础翻译 改为 笔记和总结
- MFC常用类、成员函数、数组类、Cstring类、CTime类、CPoint类
- 使用Dockerfile定制镜像来部署Tomcat项目
- 【解析】spring-boot整合通用mapper
- ssm使用全注解实现增删改查案例——DeptServiceImpl
- itools 不支持缩略图下载_PS插件缩略图3.8.0.96安装教程
- 不容易,今天的成果。
- SBM延迟飙升mysql_Mysql解决主从慢同步问题
- 如何在思科交换机上配置Telnet远程登录
- hyperledger fabric 2.3.3 环境搭建教程
- 超兔指纹浏览器(TO12345)是什么?
- mysql 3358端口_好用的MySQL抓包工具:sniffer-agent
- 配置Pico App ID
- Android Activity的隐式调用(跨进程)★
- 做国外LEAD需要一些邮箱怎么办
- html5新年主题,HTML CSS3农历新年祝福语生成器
- 第二周:四人小组项目
- catti二级笔译综合能力真题_【CATTI二级笔译】综合能力知识点总结(一)
- SWUSTOJ #78 计算生日是星期几
热门文章
- AI生成二维码Stable diffusion生成可识别二维码【附完整教程】【附完整案例】
- vs2013 javascript语言服务遇到错误且已关闭解决方案
- dqn 应用案例_强化学习(九)Deep Q-Learning进阶之Nature DQN
- 亲身经历:中型企业ERP选型全纪录
- nunit测试报告 转html,单元测试软件NUNIT使用说明
- 【xdoj难题集】 1018 Josephus环的复仇的复仇
- 面经 收藏的 这可能不只是一篇面经
- Android 挂逼 修炼之行---解析公众号文章消息和链接文章消息如何自动打开原理
- ixwebhosting优缺点分析
- 【2022CSPJ普及组】 T3.逻辑表达式(expr)