Unity 伤害字体飘血效果

 很多攻击类型游戏 掉血或者加血的同时都会出现一些飘血的样子

 血条文字向上移动的效果

using UnityEngine;

public class HpPopMove : MonoBehaviour
{
   //移动删除
    void Start()
    {
        Destroy(gameObject, 2f);
    }
    void Update()
    {
        transform.Translate(transform.up * 20 * Time.deltaTime);
    }
}

每次掉血的时候触发一下这里 

    GameObject hpPop = Instantiate(Resources.Load<GameObject>("HpPop"), GameObject.Find("Canvas").transform, false);
    hpPop.AddComponent<HpPopMove>();
    hpPop.transform.position = hpEnemy.transform.position + Vector3.up * 3;
    hpPop.GetComponent<Text>().color = Color.red;
    hpPop.GetComponent<Text>().text = "-5";

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用DOTween实现伤害飘字可以通过以下步骤完成: 1. 创建一个伤害飘字的预制体,可以包含一个Text组件来显示伤害数字。 2. 在代码中使用DOTween创建一个Tween对象,将伤害飘字的位置从伤害来源点移动到目标位置,并在移动过程中改变伤害飘字的透明度和缩放大小等属性。 3. 在Tween对象完成后,销毁伤害飘字的预制体。 下面是一个示例代码: ```csharp public class DamageNumber : MonoBehaviour { public Text damageText; public float moveDuration = 1f; public float fadeDuration = 0.5f; public float scaleDuration = 0.5f; public float moveDistance = 50f; public Vector3 targetPosition; private void Start() { // 设置伤害飘字的初始位置 transform.position = targetPosition + new Vector3(0f, moveDistance, 0f); // 创建Tween对象来移动伤害飘字的位置 var moveTween = transform.DOMove(targetPosition, moveDuration); // 创建Tween对象来改变伤害飘字的透明度 var fadeTween = damageText.DOFade(0f, fadeDuration); // 创建Tween对象来改变伤害飘字的缩放大小 var scaleTween = transform.DOScale(2f, scaleDuration).SetEase(Ease.OutQuad); // 当Tween对象完成时,销毁伤害飘字的预制体 moveTween.OnComplete(() => Destroy(gameObject)); // 启动Tween对象 moveTween.Play(); fadeTween.Play(); scaleTween.Play(); } public void SetDamageNumber(int damage) { // 设置伤害数字的文本 damageText.text = damage.ToString(); } } ``` 在游戏中,可以通过以下代码来创建并显示伤害飘字: ```csharp public class Player : MonoBehaviour { public GameObject damageNumberPrefab; public void TakeDamage(int damage) { // 创建伤害飘字的预制体 var damageNumber = Instantiate(damageNumberPrefab, transform.position, Quaternion.identity); // 设置伤害数字的值 var damageNumberComponent = damageNumber.GetComponent<DamageNumber>(); damageNumberComponent.SetDamageNumber(damage); // 设置伤害飘字的目标位置 var targetPosition = transform.position + new Vector3(0f, 2f, 0f); damageNumberComponent.targetPosition = targetPosition; // 启动伤害飘字的Tween动画 damageNumberComponent.Start(); } } ``` 当玩家受到伤害时,通过调用TakeDamage方法来显示伤害飘字。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值