NGUI ScrollView动态添加Item(不用GameObject.Find()去查找需要动态改变的游戏对象)

借鉴网上的提示,但具体的网址忘记保存了,因此无法放在这里!如需要注明出处,请联系本人。

PS:网上说的不够详细,自己敲了下代码实现并整理了一下。

下面我用UITable组件而不是UIGrid来排序Item

将Item做成预设体,如下图中的3:QuestLog(此GO对应官方的例子中的QuestLog)

在预置体QuestLogPrefab中的GO对象QuestLog上挂脚本,如上图中1:脚本命名为QuestLogPrefab(当然类名也一样),然后在脚本里声明你需要动态改变数据的GO,记得需要public(在编辑器才可见),如上述图中的MTitle Label、MCount Label等等(分别对应以下脚本中的变量)

然后程序启动之后,上述的MTitle Label、MCount Label等等这些会start()之前被初始化好(因为已经在编辑器里面做好绑定了)

加载预设体之后,根据对应的类名QuestLogPrefab来获取脚本中的变量(这样的好处当然就是不需要使用GameObject.Find()去查找GO啦!!!):

之后,见上图中2的QuestLog(是一个GameObject)

其类中有mTestUITableGO(就是预设体Item的父对象QuestLog)、mTestUITable两个public成员变量,在其脚本中

btw,动态删除,可以先使用UITable中的移除Item方法(名字忘记了-_-!),接着用Destroy销毁Load进来的与预设体Item(PS:如果你的应用会经常动态创建Item以及删除Item,那么最好还是做一个回收池吧:将预设体移除之前重置一下,移除之后保存在list中,需要的时候就去list中拿,若list为空的话就load预设体Item。)

PS:敲字的时候没校对,若有错误或其他的待改善等问题,请指出,不胜感激!

End: 转载请注明出处!

时间: 2024-11-13 06:40:54

NGUI ScrollView动态添加Item(不用GameObject.Find()去查找需要动态改变的游戏对象)的相关文章

FMX TListView 动态添加Item和Item里面的Object

FMX TListView比较复杂,功能也比较强大.如果是比较简单的列表,可以用TListBox代替,运用比较简单.FMX TListView的设计时运用和一般的控件也不一样,不是严格的"可视即可得",这和其它的控件使用方式差别比较大,比如,如果没有和Living binding控件配合,设计时是不能直接创建Item的,设计时只是设计了Item的外观样式,Item是运行时添加的(Demo里的例子基本是和Living Binding配合的,所以有设计时的Item).而且,Custom的样

javascript动态添加form表单元素

2014年11月7日 17:10:40 之前写过几篇类似的文章,现在看来比较初级,弄一个高级的简单的 情景: 后台要上传游戏截图,截图数量不确定,因此使用动态添加input节点的方法去实现这个效果 主要用到的函数有: document.getElementById(); objNode.parentNode; objNode.cloneNode(); objNode.removeAtrribute(); objNode.innerHTML(); objNode.appendChild(); ht

每天都有新发现——如何优雅的用js动态添加html代码

body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { fon

微信小程序之一:动态添加view(view包含picker,input)

<view wx:for="{{array}}" wx:key="this" class="borderContainer"> <view class="borderContainer1"> <view class="firstBorder"> <view class="firstBorderInput"> <input maxlen

Unity3D基础--动态创建和设置游戏对象

转载自原文:http://m.blog.csdn.net/blog/smbroe/43488627 1.如何动态创建对象:调用GameObject的CreatePrimitive方法可以按模型进行创建,PrimitiveType中可选的模型有,Cube(立方体),Sphere(球体),Capsule(胶囊),Plane(平原),Cylinder(圆柱):创建出的对象不需要Add之类的就可以显示出来 GameObject cubeObject = GameObject.CreatePrimitiv

Unity NGUI中动态添加和删除sprite

转自:http://www.cnblogs.com/vitah/p/3897664.html (以后,参考链接和作者将在文章首部给出,转载请保留此部分内容) 参考链接:http://www.narkii.com/club/thread-299977-1.html,作者:纳金网 比巴卜: 参考链接:http://game.ceeger.com/forum/read.php?tid=2852,作者:Unity圣典论坛 kuku小夭 动态添加和删除Sprite可以在很多地方用到,这里以实现显示技能CD

NGUI中UISlider的OnValueChange事件的动态添加

对于NGUI事件的种类很多,最常用的请看这个网址:http://www.xuanyusong.com/archives/2390 对于OnValueChange的事件,有时根据需求需要进行动态的添加,常用方法: 进行手动设置. 第二种方法就是动态添加后,使用UIListener监听 直接上方法: EventDelegate eventDelegate = new EventDelegate(this, "ChangFunc"); eventDelegate.parameters[0]

NGUI 动态添加控件

本文链接地址: Unity3D NGUI动态创建按钮 本例仅以熟悉NGUI组件功能为目的,想快捷简便的创建按钮或其它游戏物体请参考 “Unity3D 动态实例化Prefab” 以动态创建服务器列表为例. public UIAtlas mAtlas; public UIFont mFont; public string mSriteName; public GameObject Playerlist; /// <summary> /// 动态加载一个NGUI按钮 /// </summary

StoryBoard下ScrollView如何添加约束

在做项目的事后有一个注册页面,为了适配屏幕采用了StoryBoard,添加约束以后运行后发现一个问题.  在4.0 甚至更大的屏幕下是没有问题的,如下图(4.0屏幕) 但是放到更小的3.5英寸就会出现问题,发现下面的按钮不见了,主要原因是输入框太多,导致更个屏幕放不下更多.如图(3.5)英寸 想了下就决定用ScrolleView, ContentSize可以设置为560. 这样在其他屏幕上没有太多的影响,在3.5的屏幕下也可以滑动了.但是在StoryBord拖过ScrollView,添加约束的时