unity UGUI动态滑动列表

 

步骤:

     1.在SceneMail创建一个Panel 改名为ScrollRect,ScrollRect添加Mask和Scroll Rect组件,Scroll Rect组件勾选Vertical 只需要垂直滚动

     2.在SceneMail创建一个Scrollbar控件

     3.ScrollRect上添加子控件Panel 改名为ScorllView,ScorllView大小覆盖ScrollRect

     4.ScorllView添加子控件Panel 改名为Content,Content大小覆盖ScorllView

     5.Content添加Vertical Layout Group和Content size Fitter组件,Vertical Layout Group组件设置好间隔和对其方式,会自动排列我们添加的控件,Content size Fitter用来调整显示内容

     6.将ScorllView、Content和Scrollbar分别拖到ScrollRect里面 如图所示

unity UGUI动态滑动列表_第1张图片

 7.Scollbar组件属性Direction修改成 Bottom To Top(往下拉将ScorllRect底部隐藏部分拖出来)

     8.制作Prefab Item

unity UGUI动态滑动列表_第2张图片

 

代码

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class SceneMail : MonoBehaviour
{
    public Button mItemPrefab;//要添加到列表的预设体按钮组件
    public Transform mContentTransform;//容器Content的transform
    public Scrollbar mScrollbar;//滑动条

    List

用的时候只要把这个脚本随便绑到场景中就行

unity UGUI动态滑动列表_第3张图片

另外,在重置容器的height时,两种方法我觉得都差不多,而且在添加和删减组件时好像都还是有些问题的,这一点在用的时候要注意

其中group关联的是

unity UGUI动态滑动列表_第4张图片

 

PS:

rect是RectTransform
rect.sizeDelta的x是width
rect.sizeDelta的y是height

rect.offsetMin 是vector2(left, bottom);

rect.offsetMax 是vector2(right, top);

 

-----------------------------------------------------------------------------------------------------------------------------------

之前说过存在一些问题

unity UGUI动态滑动列表_第5张图片

将Content的Content Size Fitter → Vertical Fit 改为 Min Size 即可

如果是横向滑动,则是更改 Horizontal Fit

 

如果想设置多列元素显示,则可以将content上的Vertical Layout Group 更换成 Grid Layout Group,使用方法大致上差不多

 

有时初始显示的滑动列表的位置可能有点不如意,这时可以通过调整

unity UGUI动态滑动列表_第6张图片

这些来改动

转载于:https://www.cnblogs.com/lingLuoChengMi/p/10000360.html

你可能感兴趣的:(unity UGUI动态滑动列表)