NGUI ScrollView动态加入和删除对象。
动态加入,基本思想是:
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动态加入和删除对象。的更多相关文章
- Unity NGUI中动态添加和删除sprite
(以后,参考链接和作者将在文章首部给出,转载请保留此部分内容) 参考链接:http://www.narkii.com/club/thread-299977-1.html,作者:纳金网 比巴卜: 参考链 ...
- js学习(一)-动态添加、修改、删除对象的属性和方法
//-----------------------js代码--------------------------- function class1(){ } //-------------------- ...
- angular.element方法汇总以及AngularJS 动态添加元素和删除元素
addClass()-为每个匹配的元素添加指定的样式类名after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点append()-在每个匹配元素里面的末尾处插入参数内容att ...
- [Flex] Accordion系列-动态添加或删除Accordion容器中项目
<?xml version="1.0" encoding="utf-8"?> <!--Flex中如何使用addChild()和removeCh ...
- jquery 动态添加和删除 ul li列表
今天需要实现一个jquery动态添加和删除 ul li列表中的li行,自己简单的实现乐一个,分享一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...
- 原生JS动态添加和删除类
原生JS动态添加和删除类 由于需要, 给按钮组监听点击事件(要求用事件委托),当有一个按钮被点击时,相应的给该按钮添加一个类(激活类),其他没有点击的按钮就要移出该类 添加和和删除类有三种方法 首先等 ...
- angular.element 动态添加和删除元素
addClass()-为每个匹配的元素添加指定的样式类名after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点append()-在每个匹配元素里面的末尾处插入参数内容att ...
- kubernetes命令式容器应用编排/部署应用/探查应用详情/部署service对象/扩缩容/修改删除对象
部署Pod应用 创建delpoyment控制器对象 [root@master ~]# kubectl run myapp --image=ikubernetes/myapp:v1 --port=80 ...
- jquery动态增加或删除tr和td【实际项目】
难点: (1)动态增加.删除tr和td (2)每天tr和td都有下标,且下标要动态变化, (3)tr和td为什么下标不能随便写,原因是此处需要把所有tr中的数据以list的形式发送到后台对象中,所有每 ...
随机推荐
- 微软系统工具套件SysinternalsSuite各个工具功能说明
下载地址:http://download.sysinternals.com/files/SysinternalsSuite.zip 工具名 工具说明 Accesschk Windows ...
- Android+NDK+CDT+eclipse+OPenGL ES编制和native调试
周围环境: NDK版本号r8,eclipse和Android运用adt-bundle-windows-x86打包版本是更方便, 一.NDK汇集 1.源代码 NDK的examples文件夹中有Hello ...
- 它们的定义PropertyPlaceHolder无法完成更换任务
Spring默认PropertyPlaceholderConfigurer只能加载properties格风格简介,现在,我们需要能够从类的完整支持允许似hadoop格风格xml配置文件读取配置信息,并 ...
- 《javascript高级编程》读书笔记(两)javascript基本概念
第三章:基本概念 ECMAScript那里5种简单数据类型(也称基本数据类型):Undefined\Null\Boolean\Number\String,另一种复杂数据类型--Object,Objec ...
- 第三章——使用系统函数、存储过程和DBCC SQLPERF命令来监控SQLServer(3)
原文:第三章--使用系统函数.存储过程和DBCC SQLPERF命令来监控SQLServer(3) 本文为这个系列最后一篇.将是如何使用DBCC命令来监控SQLServer日志空间的使用情况. 前言: ...
- 基于Qt有限状态机的一种实现方式和完善的人工智能方法
基于Qt有限状态机的一种实现方式和完善的人工智能方法 人工智能在今年是一个非常火的方向,当然了.不不过今年,它一直火了非常多年,有关人工智能的一些算法层出不穷.人工智能在非常多领域都有应用,就拿我熟悉 ...
- OpenCV2学习笔记(十四):基于OpenCV卡通图片处理
得知OpenCV有一段时间.除了研究的各种算法的内容.除了从备用,据导游书籍和资料,尝试结合链接的图像处理算法和日常生活,第一桌面上(随着摄像头)完成了一系列的视频流处理功能.开发平台Qt5.3.2+ ...
- 弹出层 div dialog
写你自己的弹出框 风格,如下面 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWluZ2xpYW5sdWFu/font/5a6L5L2T/fontsize ...
- JPA实体继承映射
注意:据说,在本文所指的实体是@Entity注解的类. JPA在对象 - 关系映射通常情况下一个实体对应表,不管是什么这两个实体之间的关系.假设两个实体之间的继承关系.那么它是如何映射? JPA实体支 ...
- 探索Scala(1)-- 运算符重载
Scala语言运算符重载全然是语法层面的小把戏,本文记录我对Scala语言运算符重载的一些理解. 方法调用语法糖 调用方法时,Scala同意省略点号和圆括号,如以下代码所看到的: 把运算符映射成单词 ...