gpt4 book ai didi

unity3d - 从内容中删除/停用子元素后,ScrollRect 在固定规范化位置时无法正确更新位置

转载 作者:行者123 更新时间:2023-12-03 22:20:52 27 4
gpt4 key购买 nike

这是我在找不到解决方案后不得不自己解决的问题。

问题在于,从 ScrollRect 的内容中移除 GameObject 元素后,它不会固定其规范化位置,直到用户再次开始移动它。这可能会导致 ScrollRect 在显示最后一个元素并停用父元素的最后一个元素时显示空白区域。

  • 在用户与 ScrollRect 内容交互之前,标准化位置值不会更新。
  • 在停用元素后手动设置规范化位置将不起作用,因为它正在处理尚未更新的旧值(原因见上文)。

最佳答案

我找到的最好的解决方案是

  1. 在 ScrollRect 的内容中检测到一个子元素被移除后强制更新 Canvas。
  2. 然后钳制值,因为标准化位置已正确更新。

示例代码:

        if (isRemoving) {
Canvas.ForceUpdateCanvases();
scrollRect.horizontalNormalizedPosition = Mathf.Clamp(scrollRect.horizontalNormalizedPosition, 0f, 1f);
}

关于unity3d - 从内容中删除/停用子元素后,ScrollRect 在固定规范化位置时无法正确更新位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com