unity3d - 改变 Image.fillAmount

unity3d - Change Image.fillAmount

我有一个图像作为健康栏,我想给它一个大于 1 的服装值:

    public Image healthBar;

    // Use this for initialization
    void Start () {

        float health = 4;

        healthBar.fillAmount = health;
        Debug.Log (gameObject + ""+ healthBar.fillAmount);
    }

问题是无论我给健康值多少,fillAmount 总是回到 1。有什么办法可以让它更高吗?

我认为您在创建 heath float 时出现了拼写错误。声明时调用健康 "healt"

fillAmount 是 0-1 的值,1 时显示完整图像。对于大于 1 的数字还没有任何行为。

您可以根据最大生命值改变图像的宽度,并计算需要填充的百分比。

   healthBar.rectTransform.rect.width = maxHealth * healthBarWidth;
   healthBar.fillAmount = health / maxHealth;

如果您不想要一个条形图,而是想要多个图像(例如仍然部分填充的心形),您可以使用自动在边缘截断的平铺图像来实现。

 healthBar.fillAmount += health;

尝试在 fillAmount 值中进行递增,因为它会分配您想要的值,然后稍微更改代码以达到确切的数字。