UI跟随人物移动最简单的方法是,直接将带血条的Canvas挂在人物头上,人物走,Canvas也会跟着走.但是如果人物很多,就会有很多Canvas,并且这个血条也会跟着旋转.

另一个思路是将UI坐标转化为世界坐标,然后实时跟随人物坐标.这样就实现了UI跟随人物的效果,并且不会跟随人物旋转.

具体如下:

准备工作

搭建工作看层级面板:

这里需要将Canvas的渲染模式改为摄像机模式,如下图

图片上设置一下图片类型为Filled,并挂上脚本,拖入目标

脚本

脚本如下:

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

public class Test : MonoBehaviour
{
    public Transform target;
    public Vector3 offset;
    private Image img;
    void Start()
    {
        img = GetComponent<Image>();
    }
    void Update()
    {
        //实时将目标坐标赋给UI坐标
        this.transform.position = target.position + offset;
        //测试血条功能
        if (Input.GetMouseButtonDown(0))
        {
            img.fillAmount -= 0.2f;
        }
        if (Input.GetMouseButton(1))
        {
            img.fillAmount = 1;
        }
    }
}

运行

运行效果如下.此时再场景中,直接拖动物体,UI就会跟着移动.并且旋转不受影响.

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐