unity3D创建英雄选择栏

来源:互联网 发布:淘宝美工店铺装修教程 编辑:程序博客网 时间:2024/06/05 18:44

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);//设置值    }}

效果图如下




0 0