unity制作简单血条
第一步制作血条
新建Canvas 修改RenderMode为World Space,调整RectTransform
新建Image,命名为Background,修改Source Image为InputFieldBackground,修改Color为红色
复制Background作为本身的子物体,改颜色为绿色,修改锚点,修改Pivot为0,0
,
只需要修改width就可以看到血条效果,给物体Healthbar添加HealthController脚本
using UnityEngine;
public class HealthController : MonoBehaviour {
public float maxHealth=1000;//最大血量
public float currentHealth = 1000;//当前血量
RectTransform rectTransform;
private float width;//100 //记录血量宽度
//1000
// Use this for initialization
void Start () {
rectTransform = GetComponent<RectTransform>();
width = rectTransform.sizeDelta.x;
}
// Update is called once per frame
void Update () {
if (currentHealth>= maxHealth)
{
currentHealth = maxHealth;
}
if (currentHealth<=0)
{
currentHealth = 0;
}
rectTransform.sizeDelta = new Vector2(width/maxHealth*currentHealth, rectTransform.sizeDelta.y);
}
}
运行程序后,可以通过修改CurrentHealth的值来改变血量(小知识:unity 编辑器界面如何能调用OnGUI和Update等函数,把 [ExecuteInEditMode]写在类上方来通知编译器,该类的OnGUI和Update等函数在编辑模式也也会被调用; )