[Unity][Animator]伤害飘字跟随角色不停的移动

版权声明:本博客一本正经胡说八道,文章内容不能作参考。本文为博主原创文章,未经博主允许不得转载。该博客所用图片资源均作学习分享用途,仅供参考,请勿用于商业行为。传播者自负。 如果本博客所写文章侵犯到您的权益,请主动联系留言,我们将及时删除相关内容。 https://blog.csdn.net/BuladeMian/article/details/89762898

在相关资料1的基础上实现,伤害飘字 特效 跟随 玩家角色。

逻辑图

UIFollowManage

using System.Collections.Generic;
using UnityEngine;

public class UIFollowManage : MonoBehaviour {

    [SerializeField]
    /// <summary>
    /// 
    /// </summary>
    public Transform[] list_trans_text;

    /// <summary>
    /// 
    /// </summary>
    public List<Transform> list_tran_follow = new List<Transform>();


    #region Singleton
    public static UIFollowManage instance;

    void Awake()
    {
        instance = this;
    }
    #endregion


    // Use this for initialization
    void Start () {

	}
	
    /// <summary>
    /// 
    /// </summary>
    public void activeFollowUI(string str, Transform _transform,Color color, Sprite sprite)
    {
        list_tran_follow.Add(_transform);
        int k = 0;
        for (int i = 0; i< list_tran_follow.Count ;i++)
        {
            if (list_tran_follow[i] == _transform)
            {
                k = i;
            }
        }

        if (k < list_trans_text.Length
            && list_trans_text[k] != null
            && list_trans_text[k].GetComponent<UIFollow_New>())
        {
            list_trans_text[k].GetComponent<UIFollow_New>().avtiveFollowText(str,_transform, color,sprite);
        }
    }
}

UIFollowControl

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

/// <summary>
/// 
/// </summary>
public class UIFollowControl : MonoBehaviour {


    private UIFollowManage uIFollowManage;
    /// <summary>
    /// 
    /// </summary>
    private List<Transform> list_tran_follow = new List<Transform>();
    /// <summary>
    /// 
    /// </summary>
    private Transform[] list_trans_text;


  void Start () {
        uIFollowManage = UIFollowManage.instance;
    }

void Update () {

        //followUI();

        #region 跟随UI更新
        uIFollowManage = UIFollowManage.instance;
        list_tran_follow = uIFollowManage.list_tran_follow;
        list_trans_text = uIFollowManage.list_trans_text;
        if (list_tran_follow.Count >0)
        {
            for (int i=0; i< list_tran_follow.Count; i++)
            {
                Vector3 namePos = Camera.main.WorldToScreenPoint(list_tran_follow[i].transform.position);
                namePos.z = 0;
                list_trans_text[i].transform.localScale = new Vector3(1,1,1);
                list_trans_text[i].transform.position = namePos;
            }


        }


        #endregion


    }
}

UIFollow_New

using UnityEngine;
using UnityEngine.UI;

public class UIFollow_New : MonoBehaviour {

    private Transform transform_;

    [SerializeField]
    private Image image_icon;


    /// <summary>
    /// 挂载在 Text实体上
    /// </summary>
    /// <param name="str"></param>
    /// <param name="transform"></param>
    /// <param name="color"></param>
    /// <param name="sprite"></param>
    public void avtiveFollowText(string str,Transform transform, Color color,Sprite sprite)
    {
        this.transform.localScale = new Vector3(1,1,1);
        if (this.GetComponent<Text>()!=null)
        {
            this.GetComponent<Text>().text = str;
            this.GetComponent<Text>().color = color;
        }

        if (image_icon != null)
        {
            image_icon.sprite = sprite;
        }
    }


    public void clearAnimation()//Text实体的animation动画中的事件
    {
        this.transform.localScale = new Vector3(0,0,0);
        if (transform_ != null)
        {
            UIFollowManage.instance.list_tran_follow.Remove(transform_);
        }
    }

}

当角色受到伤害的时候,调用(UIFollowManage.instance.activeFollowUI(str,this.transform,Color.red,null);)就行了。
        currentHealth -= damage;
        UIFollowManage.instance.activeFollowUI(str,this.transform,Color.red,null);

如果 同时要 实现 跟多 的 漂浮字 跟随玩家,需要 把 UIFollowManage里面的list_trans_text数组的对象 多添加几个 含有UIFollow_New组件的 Text 实体。

相关资料1里面有 伤害飘字 的实现方法。

相关资料:

1.[Unity][Animation&amp;Animator][特效]伤害飘字

2.

3.

猜你喜欢

转载自blog.csdn.net/BuladeMian/article/details/89762898