如何解决如何将ui元素的宽度除以2?
(float)rect.sizeDelta.x / 2.0f
我试图将rect变换的宽度除以2,但是它只返回rect变换的宽度的原始值。和大小增量返回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);
}
解决方法
请注意,RectTransform.sizeDelta
取决于您的锚设置,顾名思义,在大多数情况下,该值是 delta 值
如果锚点位于父对象的四个角中的每个角落,则
sizeDelta
是矩形与父对象相比的大小。
如果您想要实际的宽度,则应该使用RectTransform.rect
var halfWidth = GetComponent<RectTransform>().rect.width / 2f;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。