c# - 如何将 ui 元素的宽度除以 2?
问题描述
(float)rect.sizeDelta.x / 2.0f
我试图将矩形变换的宽度除以 2。但它只返回矩形变换宽度的原始值。并且 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;
推荐阅读
- java - 如何使用 java 解密 php yii 加密密码
- laravel - 使用 livewire 添加顺风类
- javascript - 使用 Fetch API 从 chrome 扩展读取 HTTP 响应正文
- html - 缺乏编码经验,需要帮助添加到 HTML 脚本
- java - 将十位数字的字符串转换为整数或生成 10 位长的随机整数以在 Java 中创建帐号
- r - 按 R 中的样本分组的逐行 Fisher 精确检验
- php - 在购物车中添加商品数量
- python - 如何使用 Python 中的键盘模块一次处理多个键?
- python - 健康方式禁用/删除子类中的方法
- reactjs - 无法加载资源:net::ERR_CONNECTION_REFUSED?Heroku,Axios