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
值中进行递增,因为它会分配您想要的值,然后稍微更改代码以达到确切的数字。
我有一个图像作为健康栏,我想给它一个大于 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
值中进行递增,因为它会分配您想要的值,然后稍微更改代码以达到确切的数字。