我正在尝试获得一个健康栏,以使我的UI在UI上显示,并且无法弄清楚如何使缩放率正确地工作。我需要最大的价值为0,因此当currenthealth = 0时,栏消失了,当CurrentHealth = MaxHealth = MaxHealth时,它应该等于MaxHealth。我当前的代码如下。
public RectTransform this_rect;
public float left = 3f;
public float right = 0f;
public float posY = -50f;
public float height = 20f;
public int MaxHealth = 3;
public int currentHealth = 3;
void Update()
{
this_rect.anchorMin = new Vector2(0, 1);
this_rect.anchorMax = new Vector2(1, 1);
Vector2 temp = new Vector2(left, posY - (height / 2f));
this_rect.offsetMin = temp;
temp = new Vector3(-right, temp.y + height);
this_rect.offsetMax = temp;
// currentHealth = (int)(left + 1 * MaxHealth);
right = -currentHealth + MaxHealth;
}
您应该能够将UI滑块用于目的。
滑块组件是可选的,可以控制填充,手柄或两者兼而有之。填充,当使用时,填充物从最小值跨越当前值 时,当句柄(使用时(遵循当前值。
来源:https://docs.unity3d.com/scriptreference/ui.slider.html
此外,这是UI滑块上的视频教程,可能很有用:
UI滑块可用于从设置菜单到健康条的各种目的。
https://unity3d.com/learn/tutorials/topics/user-interface-ui/ui-slider