UIRoot.BroadCast(methodname, params) Unity3d 面向对象设计思想(二)(动态UI的分配与调度)
2015-01-12 17:14
447 查看
原文地址:http://blog.csdn.net/unity3d_xyz/article/details/23267747
昨天写了一个UI弹窗,功能是可以实现,但是使用起来不是很方便,如果需要代码动态指定
静态弹窗无法满足项目的需求,比如服务器断开连接,诸如此类的UI,需要代码来动态实现,这样才可以使用起来
项目化,可以封装到弹窗的类型,弹窗显示的内容,包括弹窗显示一些游戏奖品道具这类物品
个人觉得弹窗最好还是能用来Unity3d中的实例化功能,这样即可以节省一定的内存空间,也能够让项目规格化
具体在NGUI里的做法,我的思想是:
a.写一个msg接收类,里面封装了所有有关接收消息的类型,以及需要显示的内容
b.在需要显示弹窗的地使用UIRoot.BroadCast(methodname, params)
c.实例化后能够自己释放克隆对象,这样可以达到一个程序的循环
代码实例:
a.绑定实例到UIRoot脚本,指定要实例化的对象,多对象使用数组即可
b.消息实例,可以加入id,对象消息等
[csharp] view
plaincopy
void broadCast (string details/*,int id, */) {
//switch(id)
Instantiate(obj, transform.position, Quaternion.identity);
UILabel lbl = GameObject.FindGameObjectWithTag("labeldesc").GetComponent<UILabel> ();
lbl.text = details;
}
c.消息发送方
[csharp] view
plaincopy
UIRoot.Broadcast("broadCast", "params");
d.在消息响应后实时销毁,销毁事件可以实时响应到按钮上
e.将销毁事件可指定到NGUI的事件分发系统
昨天写了一个UI弹窗,功能是可以实现,但是使用起来不是很方便,如果需要代码动态指定
静态弹窗无法满足项目的需求,比如服务器断开连接,诸如此类的UI,需要代码来动态实现,这样才可以使用起来
项目化,可以封装到弹窗的类型,弹窗显示的内容,包括弹窗显示一些游戏奖品道具这类物品
个人觉得弹窗最好还是能用来Unity3d中的实例化功能,这样即可以节省一定的内存空间,也能够让项目规格化
具体在NGUI里的做法,我的思想是:
a.写一个msg接收类,里面封装了所有有关接收消息的类型,以及需要显示的内容
b.在需要显示弹窗的地使用UIRoot.BroadCast(methodname, params)
c.实例化后能够自己释放克隆对象,这样可以达到一个程序的循环
代码实例:
a.绑定实例到UIRoot脚本,指定要实例化的对象,多对象使用数组即可
b.消息实例,可以加入id,对象消息等
[csharp] view
plaincopy
void broadCast (string details/*,int id, */) {
//switch(id)
Instantiate(obj, transform.position, Quaternion.identity);
UILabel lbl = GameObject.FindGameObjectWithTag("labeldesc").GetComponent<UILabel> ();
lbl.text = details;
}
c.消息发送方
[csharp] view
plaincopy
UIRoot.Broadcast("broadCast", "params");
d.在消息响应后实时销毁,销毁事件可以实时响应到按钮上
e.将销毁事件可指定到NGUI的事件分发系统
相关文章推荐
- Unity3d 面向对象设计思想(二)(动态UI的分配与调度)
- Unity3d 面向对象设计思想(二)(动态UI的分配与调度)
- Unity3d 面向对象设计思想(一)(UI的分配与调用)
- Unity3d 面向对象设计思想(一)(UI的分配与调用)
- Unity3d 面向对象设计思想(四)(游戏背包的处理i)
- 深入理解动态规划思想——装配线调度、矩阵链乘法、最长公共子序列、最优二叉查找树
- [Unity3D插件]NGUI之UIRoot屏幕分辨率自适应
- Unity3D 使用 RenderTexture 做 UI 特效、动态阴影
- unity基础开发----Unity3D的uniSWF插件动态加载SWF UI资源
- Unity3D控件分析之UIRoot
- [Unity3d][NGUI] NGUI所见即所得之UIRoot
- (action动态方法调用)struts通过ActionName!methodName.action,即通过感叹号(即!)访问某Action的方法,确老是报错
- struts2动态方法调用 ActionName!methodName.action
- Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应
- 多态,动态方法调度(dynamic method dispatch)?
- Unity3d 面向对象设计思想(三)(对象的拆分)
- Android service broadcast 动态 更新 UI 界面
- 动态获取Struts2执行动作的Method Name
- [Unity3D插件]NGUI之UIRoot屏幕分辨率自适应
- Unity3d 面向对象设计思想(五)(游戏背包的处理ii)