unity 利用Content Size Fitter和Layout Element UI列表嵌套列表

先看下是不是想要的效果
在这里插入图片描述
先在一级层级上挂上VerticalLayoutGroup和ContentSizeFitter两个组件,如果是竖向的就将ControlChildSize的Height勾选,如果横向的则勾选Width
在这里插入图片描述
在这里插入图片描述
然后在二级层级上挂上VerticalLayoutGroup和LayoutElement在这里插入图片描述
三级层级上所有子物体上必须得挂上LayoutElement并且按照我所设置的进行设置,当然长宽可以自定义,和其它同级统一就行,否则会受到父级影响长宽归零
在这里插入图片描述
在这里插入图片描述
要扩大长款的三级层级挂载的组件按照图里设置
在这里插入图片描述
然后四级层级动态添加即可,上面不需要挂组件
在这里插入图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Unity 中实现循环滑动列表可以使用 ScrollRect 组件和 ContentSizeFitter 组件。以下是一个基本的步骤: 1. 创建一个空白 GameObject,并向其中添加 ScrollRect 组件。 2. 在 ScrollRect 组件中设置 Content 属性为一个包含所有列表项的 GameObject。 3. 向 Content 中添加一个 VerticalLayoutGroup 组件,用于设置列表项的垂直布局。 4. 向每个列表项 GameObject 中添加一个 LayoutElement 组件,用于设置列表项的高度。 5. 向 ScrollRect 中添加一个 ContentSizeFitter 组件,并将 Vertical Fit 设置为 Preferred Size。 6. 编写一个脚本,用于控制滑动列表的循环滚动。该脚本应该包含以下步骤: - 在 Start() 方法中获取列表项的总数和高度。 - 在 Update() 方法中检查 ScrollRect 是否已经滚动到列表的顶部或底部,并相应地更新 Content 的位置以实现循环滚动。 下面是一个简单的示例代码: ```csharp using UnityEngine; using UnityEngine.UI; public class LoopScroll : MonoBehaviour { public float itemHeight; // 列表项的高度 public int itemCount; // 列表项的总数 private RectTransform content; private ScrollRect scrollRect; private float contentHeight; private void Start() { content = GetComponent<ScrollRect>().content; scrollRect = GetComponent<ScrollRect>(); contentHeight = itemHeight * itemCount; content.sizeDelta = new Vector2(content.sizeDelta.x, contentHeight); } private void Update() { if (scrollRect.verticalNormalizedPosition <= 0f) { content.anchoredPosition = new Vector2(content.anchoredPosition.x, content.anchoredPosition.y + contentHeight); scrollRect.verticalNormalizedPosition = 1f; } else if (scrollRect.verticalNormalizedPosition >= 1f) { content.anchoredPosition = new Vector2(content.anchoredPosition.x, content.anchoredPosition.y - contentHeight); scrollRect.verticalNormalizedPosition = 0f; } } } ``` 在这个示例中,我们在 Start() 方法中计算了 Content 的总高度,并在 Update() 方法中检查 ScrollRect 是否已经滚动到列表的顶部或底部。如果是,我们就相应地更新 Content 的位置以实现循环滚动。注意,我们还将 ScrollRect 的 verticalNormalizedPosition 设置为 0f 或 1f,以保持滚动位置不变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码的小石头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值