[英]How can i divide ui elements width by two?
(float)rect.sizeDelta.x / 2.0f
我试图将 rect 变换的宽度除以 2。但它只返回 rect 变换宽度的原始值。 和 size delta 返回 vector2 所以我认为它们都是浮点数。 那么为什么会发生这种情况,我该如何解决呢?
- -编辑 - -
这是我的完整代码。
public move m;
float oris;
// Start is called before the first frame update
void Start()
{
oris = transform.localScale.x;
}
// Update is called once per frame
void Update()
{
if (m.abletime - Time.time > 0)
{
transform.parent.GetComponent<RectTransform>().sizeDelta = new Vector2(((m.killtime - (m.abletime - Time.time)) / m.killtime) * 100f, 100f);
}
var halfWidth = GetComponent<RectTransform>().rect.width / 2f;
GetComponent<RectTransform>().localPosition = new Vector3(halfWidth, 0, 0);
}
请注意, RectTransform.sizeDelta
取决于您的锚点设置,顾名思义在大多数情况下是一个增量值
如果锚点位于父项的四个角中的每一个,则
sizeDelta
是矩形与其父项相比的大小。
如果您想要实际宽度,您可能应该使用RectTransform.rect
var halfWidth = GetComponent<RectTransform>().rect.width / 2f;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.