1、创建一个Image,更改名称为FriendList,在FriendList下面创建一个空对象改名为List,创建一个Scrollbar,层级视图如下
2、在FriendList的Inspector面板中调节RectTransform,调节List的Inspector面板RectTransformt,如图。
3、FriendList添加组件Scroll Rect,勾选Horizontal选项,Horizontal Scrollbar选择Scrollbar,以及Mask组件
4、List添加Grid LayOut Group组件设置如图所示
5、给List添加一个FriendList 脚本
编辑脚本
using UnityEngine;
using System.Collections.Generic;
using UnityEngine.UI;
public class FriendList : MonoBehaviour
{
//动态的生成好友列表
public GameObject prefab;//图片预设体(sprite类型)
RectTransform rfWith;//定义List的RectTransform组件
float with;//定义变量
GridLayoutGroup glg;//定义List的GridLayoutGroup组件
void Start()
{
//获取组件
rfWith = GetComponent<RectTransform>();
glg = GetComponent<GridLayoutGroup>();
//随机产生英雄图片个数
int num = Random.Range(3, 11);
for (int i = 0; i < num; i++)
{
//实例化prefab
GameObject go = Instantiate(prefab) as GameObject;
go.transform.SetParent(transform);//将List设置为prefab的父类
}
with = num * glg.cellSize.x + (num - 1) * glg.spacing.x;//根据glg以及num动态生成rfWith的值
rfWith.sizeDelta = new Vector2(with, glg.cellSize.x);//设置值
}
}
效果图如下