动态加入,基本思想是:

1、先把要加入的元素在编辑器中编辑好,制作成一个prefab。

2、在代码中,动态的生成一个新的对象增加到Grid对象的子对象中。这里利用到了Resources对象,这个对象的使用方法能够參照官网,就是在Assets文件夹下有一个Resources文件夹,位置随便,仅仅要是在Assets文件夹下即可。

3、加入对象之后,能够从这些对象中获取子对象进行属性的改动,比方加入了十个武器,那么十个武器的Icon,名字和价格都不一样。

以下代码代码中:

代码例如以下:

var GameObject  ngui_grid = GameObject.Find ("UIGrid");

            UIGrid ngui_ui_grid = ngui_grid.GetComponent<UIGrid>();

GameObject _gridItem = NGUITools.AddChild(ngui_grid, (GameObject)(Resources.Load("GridItemPrefab")));

            // 生成的对象又一次命名

_gridItem.name = "gridItem" + indexSlot;





            var item = itemManage.Items[itemslot.Index];

// 动态改变每个武器对象的显示属性。

            Transform[] allChildren = _gridItem.GetComponentsInChildren<Transform>();

            foreach (Transform child in allChildren)

            {

                if(child.gameObject.tag == "GridItemIcon")

                {

                    UISprite _ItemIcon = child.gameObject.GetComponent<UISprite>();

                    _ItemIcon.spriteName = item.Icon.name;

                }

                else if(child.gameObject.tag == "GridItemName")

                {

                    UILabel _ItemName = child.gameObject.GetComponent<UILabel>();

                    _ItemName.text = item.Name+" "+itemslot.Index;

                }

                else if(child.gameObject.tag == "GridItemPrice")

                {

                    UILabel _ItemPrice = child.gameObject.GetComponent<UILabel>();

                    _ItemPrice.text = item.Price+"$";

                }

                else

                {

                    // do nothing,,,

                }

            }



            // 加入这个标志,能够让元素加入之后,Grid对元素进行又一次排列,

            ngui_ui_grid.repositionNow = true;



            return;

元素删除,代码例如以下:

;k<ngui_grid.transform.childCount;k++)

            {

                GameObject go = ngui_grid.transform.GetChild(k).gameObject;

                Destroy(go);

// 这个标记会让元素马上又一次排列。

                ngui_ui_grid.Reposition();

            }

NGUI ScrollView动态加入和删除对象。的更多相关文章

  1. Unity NGUI中动态添加和删除sprite

    (以后,参考链接和作者将在文章首部给出,转载请保留此部分内容) 参考链接:http://www.narkii.com/club/thread-299977-1.html,作者:纳金网 比巴卜: 参考链 ...

  2. js学习(一)-动态添加、修改、删除对象的属性和方法

    //-----------------------js代码--------------------------- function class1(){ } //-------------------- ...

  3. angular.element方法汇总以及AngularJS 动态添加元素和删除元素

    addClass()-为每个匹配的元素添加指定的样式类名after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点append()-在每个匹配元素里面的末尾处插入参数内容att ...

  4. [Flex] Accordion系列-动态添加或删除Accordion容器中项目

    <?xml version="1.0" encoding="utf-8"?> <!--Flex中如何使用addChild()和removeCh ...

  5. jquery 动态添加和删除 ul li列表

    今天需要实现一个jquery动态添加和删除  ul li列表中的li行,自己简单的实现乐一个,分享一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  6. 原生JS动态添加和删除类

    原生JS动态添加和删除类 由于需要, 给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类 添加和和删除类有三种方法 首先等 ...

  7. angular.element 动态添加和删除元素

    addClass()-为每个匹配的元素添加指定的样式类名after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点append()-在每个匹配元素里面的末尾处插入参数内容att ...

  8. kubernetes命令式容器应用编排/部署应用/探查应用详情/部署service对象/扩缩容/修改删除对象

    部署Pod应用 创建delpoyment控制器对象 [root@master ~]# kubectl run myapp --image=ikubernetes/myapp:v1 --port=80 ...

  9. jquery动态增加或删除tr和td【实际项目】

    难点: (1)动态增加.删除tr和td (2)每天tr和td都有下标,且下标要动态变化, (3)tr和td为什么下标不能随便写,原因是此处需要把所有tr中的数据以list的形式发送到后台对象中,所有每 ...

随机推荐

  1. Duanxx的Altium Designer学习:PCB试想一下,在目前的水平

    1 Shift+S          这个快捷键能高亮当前层,而且使其它层变成灰色.见下图: 2 隐藏指定层 在图中右下角的地方,右键.会弹出一个选项条.选择Hide Layers.能够选择想要隐藏的 ...

  2. SDL2来源分析7:演出(SDL_RenderPresent())

    ===================================================== SDL源代码分析系列文章上市: SDL2源码分析1:初始化(SDL_Init()) SDL2 ...

  3. HDU——B-number(数字DP)

    标题效果: 要了解1至n如何号码之间有许多含有13,并13可分 记忆化搜索: dp[pos][pre][mod][statu],pos位数,pre前一位,mod余数,statu状态 有2个状态:含13 ...

  4. [ACM] ZOJ 3816 Generalized Palindromic Number (DFS,暴力枚举)

    Generalized Palindromic Number Time Limit: 2 Seconds      Memory Limit: 65536 KB A number that will ...

  5. Azure File Service in IIS

    微软Azure的Storage套件中提供了新的服务File Service,让我们运行在Azure中的程序都能共享存储,一个存储账号共享的没有上线,但每个共享的上限是5G.由于File Service ...

  6. STL 源代码分析 算法 stl_algo.h -- pre_permutation

    本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie pre_permutation ------------------------------ ...

  7. Redis源代码-数据结构Adlist双端列表

    Redis的Adlist实现了数据结构中的双端链表,整个结构例如以下: 链表节点定义: typedef struct listNode { struct listNode *prev; struct ...

  8. JSP简单的练习-使用JDOM阅读xml文件

    <%@ page contentType="text/html; charset=gb2312" language="java" %> <%@ ...

  9. hdu 3695 Computer Virus on Planet Pandora(AC自己主动机)

    题目连接:hdu 3695 Computer Virus on Planet Pandora 题目大意:给定一些病毒串,要求推断说给定串中包括几个病毒串,包括反转. 解题思路:将给定的字符串展开,然后 ...

  10. .net下几种常用的对称加解密

    加密解密算法,太常用了,可是实在忍受不了十次八次之后还是要重头写,总是能告诉我原来的算法不好用(实际是压根不会用)的情况,不如直接写出来,再有人要直接给他看看,也顺便记录下算法,方便下新手大众. DE ...