在我们很多的unity游戏中血条是必不可少的一个东西,我们如何将他实例化在我们人物的头上呢,这时候就用到了一些东西,接下来我们来看看吧!
我们可以建一个Scrollbar或者是 Slider作为我们血条的预制体
我们把它放进Resources文件夹下(注意名称输入别错误咯)
创建一个Cube作为我们的主角,那么我们开始写代码吧
# 实现的原理
因为我们是使用的UGUI,所以血条都是显示在Canvas上的,最简单的思路就是把玩家的坐标转换成屏幕的坐标,再把血条的坐标重置到人物屏幕坐标的上边上代码。
//获取我们的相机
private Camera m_Camera;
//获取我们的Canvas画布
private GameObject can;
//我们要生成的血条
private Scrollbar scrollbar;
// Start is called before the first frame update
void Start()
{
m_Camera = Camera.main;
can = GameObject.Find("Canvas");
//生成我们血条的预制体
scrollbar = Instantiate(Resources.Load<Scrollbar>("Hp"), can.transform);
}
// Update is called once per frame
void Update()
{
//实时转换为我们玩家的坐标
scrollbar.transform.position = m_Camera.WorldToScreenPoint(transform.position + transform.up);
}
这样我们就得到了一个可以跟随我们玩家的血条了
我们移动的时候也可以看到他是实时跟随的
这样的话,我们并没有实现我们血条跟随玩家的近大远小,这些等后续我们在继续优化我们的血条吧!!