在开始之前先制作Slider血条的预制体
新建一个canvas。再创建UI->滑动条,将滑动条置于此canvas中,这个canvas一会用于制作预制体。
将Background,Handle Slider Area删除。
![](https://i-blog.csdnimg.cn/blog_migrate/afb4dfa956ac3fc7c28520bb693703c9.png)
再上图中选择Fill。在inspector中,源图像选择血条图片,图像类型选择已填充,填充方法水平,保持长宽比。
![](https://i-blog.csdnimg.cn/blog_migrate/b37c3ec6c162bf6636936353cb48c201.png)
将其制作为预制体并放在Resources文件夹下
2.在你的c#脚本中适当放置下面这些代码即可
Transform canvasTransform;
UnityEngine.UI.Slider Slider;
private void Start()
{
//血条
//指定父级this.transform为预想指定的(一般是小怪物)物体
canvasTransform = Instantiate(Resources.Load<GameObject>("Canvas3D"), Vector3.zero, Camera.main.transform.rotation, this.transform).transform;
//设置当前相对于怪物的位置
canvasTransform.localPosition = new Vector3(0,2.0f,0);
//设置缩放
canvasTransform.localScale = new Vector3(0.02f, 0.02f, 0.02f);
//获取Slider组件
Slider = canvasTransform.GetComponentInChildren<UnityEngine.UI.Slider>();
//使用协程
StartCoroutine(UpdataLifebar());
}
IEnumerator UpdataLifebar()
{
//Slider值为0-1之间
Slider.value = (float)m_life/(float)m_maxLife;
//设置欧拉角
canvasTransform.transform.eulerAngles = Camera.main.transform.eulerAngles;
yield return 0;
//刷新
StartCoroutine(UpdataLifebar());
}