借鉴网上的提示,但具体的网址忘记保存了,因此无法放在这里!如需要注明出处,请联系本人。
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: 转载请注明出处!