UGUI +ScrollRect下实现动态添加grid子物体

来源:互联网 发布:js bind 用法 编辑:程序博客网 时间:2024/06/05 05:30

与游戏背包不同,我想要实现的是动态添加子物体,而不是游戏背包那样grid子物体数固定

创建个panel,并添加scrollRect和mask这样超出panel范围的物体将被隐藏

创建一个空对象并重命名为grid 添加HorizontalLayoutGroup组件和ContentSizeFitter组件并修改部分属性

在grid下放的自然就是我们的item了 我这里item是有一个image+Text组成的,而要复制的也是这个item ,panel的层次大概就是这样了


下面是动态添加item的代码

using UnityEngine;
using UnityEngine.UI;
public class CreatChilds : MonoBehaviour {
    private GameObject baseitem;
    private Transform grid;
void Start () {
        grid = transform.Find("grid");
        baseitem = transform.Find("grid/item").gameObject;
        for (int index=0;index<10;index++)
        {
            GameObject itemclone = Instantiate(baseitem) as GameObject;
            itemclone.transform.parent = grid;
            itemclone.GetComponentInChildren<Text>().text = (index+1).ToString();
        }
}
}


最后结果




当然这是水平的 若想实现竖直滚动可以吧HorizontalLayoutGroup换成verticalLayoutGroup组件并把contensizefitter属性改一下就好了的就好了

原创粉丝点击