Unity中关于Grid的动态加载

来源:互联网 发布:蛟龙600数据 编辑:程序博客网 时间:2024/05/23 11:55

在做项目的时候发现 有很多诸如图片之类的东西需要在程序运行的时候动态加载,那么用NGUI自带的ScrollViewll来实现这个功能是比较好的,但是我不清楚程序在运行的时候到底需要加载多少个这样的对象,因为我们的程序是从服务器上去寻找我们要加载的对象。比如说动态的加载一页的图片,当然这一页上边可以加载很多的图片咯。怎么把这些图片同过一种比较好的方式加载呢  代码如下:

using UnityEngine;using System.Collections;using System.Collections.Generic;public static class NGUIUtils {        public static void SetItemNumber(this UIGrid grid, int number)        {                int cNum = grid.transform.childCount;                if (cNum > 0)                {                        List<GameObject> children = new List<GameObject>();                        for (int i = 0; i < cNum; i++)                        children.Add(grid.transform.GetChild(i).gameObject);                        GameObject pItem = children[0];                        if (number > cNum)                        {                                foreach (GameObject s in children) s.SetActive(true);                                for (int i = cNum; i < number; i++)                                {                                        GameObject selector = UnityEngine.Object.Instantiate(pItem) as GameObject;                                        selector.transform.parent = grid.transform;                                        selector.transform.localPosition = new Vector3();                                        selector.transform.localScale = new Vector3(1, 1, 1);                                }                        }                        else if (number < cNum)                        {                                foreach (GameObject s in children) s.SetActive(true);                                for (int i = cNum - 1; i >= number; i--)                                {                                        GameObject selector = children[i];                                        selector.SetActive(false);                                }                                if (number == 0) pItem.SetActive(false);                        }                        else if (number == cNum)                        {                                foreach (GameObject obj in children) obj.SetActive(true);                        }                        else                        {                                foreach (GameObject obj in children) obj.SetActive(false);                                pItem.SetActive(false);                        }                        grid.repositionNow = true;                }        }}

这是一个关于多个Grid加载的类,因为是静态类型的,所以放在你的项目中,直接通过Grid申请的变量调用就是了。

0 0
原创粉丝点击