1.创建一个图片lifebar,添加BoxCollider和ProgressBar, 因为血条不需要交互,添加ProgressBar后删除BoxCollider,发现创建后其实时UISlider
2.创建子物体图片Sprite,锚点和lifebar完全对齐,把Sprite设置给UISlider的foreground, 把lifebar设置给组件的background
3.创建子物体文本Label,锚点和lifebar完全对齐
HUDText组件
导入HUDText组件,会在Assets下生成HUD Text文件夹
HUD Text内有个example文件夹 删除,
组件一:UIFollowTarge
1.创建3D物体,当作Player,创建空物体做子物体,用来定位血条或名字位置
2.创建空节点NameLabel,下面放Label组件,用来做名称跟随
给NameLabel添加HUD Text的组件UIFollowTarget组件
Target:要跟随的物体,主角等
Game Camera:用来渲染Target物体的相机,通常是Main Camera
Ui Camera:UI相机
Disable if Invisible:超出视野范围是否失活Label组件 勾上是 不勾否
当在视野范围时
当物体不在视野中,跟随组件自动失活,节省性能
组件二:HUDText (可以用来做掉血、加血数值显示)
1.创建一个空物体hud在UIRoot下,添加HUDText组件
Bitmap Font:静态字体
True Type Font: 动态字体
Font Size: 字号
Font Style:字体加粗、倾斜等
Apply Gradient: 是否渐变
Gradient Top: 渐变上半部分颜色
Gradien Bottom: 渐变下半部分颜色
Effect: 字体添加效果
- none: 普通
- Shadow:阴影
- Outline: 描边
Effect Color: 描边颜色
Offset Curve: 位置变化
Alpha Curve: 透明度变化
Scale Curve:缩放
2.给hud添加脚本TestHub.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TestHub : MonoBehaviour { private HUDText hud; private void Awake() { hud = this.GetComponent<HUDText>(); //获取HUDText组件 } private void Update() { if(Input.GetMouseButton(0)) { hud.Add(-10, Color.red, 1); //参数: 数值 字体颜色 字体停留时间 } } }
效果: