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的形式发送到后台对象中,所有每 ...
随机推荐
- 2014 ACM湖南匹配10会议省赛
2014湖南游戏..... 1:牡丹江Regional有些球队没来的冲突 2:题目比較水 3:队友神勇发挥 最终在开局不利的情况下完毕了翻盘,拿到了第二名.....没有抓住机会顺势夺冠还是非常遗憾的. ...
- 【LeetCode】3Sum 解决报告
这个问题是我目前的知识回答,不来,只有良好的网上搜索解决方案,发现 K Sum 它是一类问题,但是,互联网是没有更简洁的代码,我想对于谁刚开始学习的人.您可能仍然想看看这个问题该怎么解决,然后看看他们 ...
- Visual Studio 原生开发的10个调试技巧(二)
原文:Visual Studio 原生开发的10个调试技巧(二) 我以前关于 Visual Studio 调试技巧的文章引起了大家很大的兴趣,以至于我决定分享更多调试的知识.以下的列表中你可以看到写原 ...
- 有意练习--Rails RESTful(一)
书要反复提及<哪里有天才>在说,大多数所谓的天才是通过反复刻意练习获得. 当你的练习时间达到10000几个小时后,.你将成为该领域的专家. 近期在学习rails怎样实现RESTful We ...
- Codeforces 110B-Lucky String(技能)
B. Lucky String time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...
- DWR入门的例子(一个)
DWR(Direct Web Remoting)是WEB远程调用框架.使用这种框架使AJAX发展至今已成为非常easy.使用DWR能client利用JavaScript直接调用服务端的Java方法并返 ...
- java jdk缓存-128~127的Long与Integer
先推断下以下代码的输出结果 Qa:---------------------------------------------- Long a = Long.valueOf(127) ...
- 设计模式 - 迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释
迭代模式(iterator pattern) Java 迭代器(Iterator) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 參考迭代器模式(ite ...
- 通过.NET实现后台自动发送Email功能的代码示例
原文:通过.NET实现后台自动发送Email功能的代码示例 通过.NET实现后台自动发送邮件功能的代码,可以将一些基础信息放到web.config文件中进行保存: Web.config文件信息段: & ...
- 简单的工具LogUtil、Toast
简单的工具LogUtil.Toast 能够用了 import android.content.Context; import android.util.Log; import android. ...