最近做一个UGUI的血条功能,期间尝试过几种方法。也查了好多资料。在自己写的demo中,运行啥的一切正常,在自己项目中就会出现一些坐标偏移 视觉偏差。总结几点原因:ui相机的设置问题, 目标物体血条挂点位置
下面介绍项目中用的方法
首先创建两个Cube
然后创建Canvas 并创建UICamera 以及Scrollbar
Canvas设置
需要将RenderMode 设置成Screen Space-Camera 并且拖入ui相机
UICamera设置
然后就是写脚本控制了核心代码很简单 就几行
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HudToUI : MonoBehaviour
{
//角色的血条
public Transform UI;
//血条的挂点
public Transform Head;
public Camera UICamera;
void Update()
{
Vector3 ws = Camera.main.WorldToScreenPoint(Head.position);
Vector2 sw = UICamera.ScreenToWorldPoint(ws);
UI.position = sw;
}
}
最后给player挂上脚本 以及设置挂点 ui相机。在应用过程中 我是遇到血条跟角色偏移点比较大。最后找到原因是挂点问题
提示 这个做法是不支持血条近大远小的功能