第一个游戏动作开发日志——Unity2D的血条制作


1、显示分为三成:背景框、血条、血条阴影代码放在血条和血条阴影上通过控制速度speed实现变化分层。第一个游戏动作开发日志——Unity2D的血条制作_第1张图片

1、即改变血条的localscale.x 实现血条显示的变化。

2、通过IEnumerator的协程实现动态的增减变化。



代码:

public class Blood : MonoBehaviour
{
    public float speed = 5.0f;

    public float bloodnow;       //输入当前的血量
    public float bloodbefore;
    public float bloodmax;

    void Start()
    {
        bloodbefore = bloodmax;
    }
	
    void Update()
    {
        if(bloodbefore != bloodnow)
            bloodbefore = bloodnow;



        StartCoroutine(Changeblood(bloodnow/bloodmax));


    }

    IEnumerator Changeblood(float px)
    {
        float timeSum = 0.0f;
        //实现血条缩减
        if (px < 0)
            px = 0;
        else if (px > 1)
            px = 1;

        if(this.transform.localScale.x >= px + 0.005 || this.transform.localScale.x <= px - 0.005)
        {           
            yield return null;
            this.transform.localScale = Vector3.Lerp(transform.localScale, new Vector3(px, this.transform.localScale.y, this.transform.localScale.z), speed*Time.deltaTime/3f);
        }
    }
}

最终效果图:

第一个游戏动作开发日志——Unity2D的血条制作_第2张图片


第一个游戏动作开发日志——Unity2D的血条制作_第3张图片

你可能感兴趣的:(Unity)