繁体   English   中英

如何将 ui 元素宽度除以二?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM