Unity UI的刷新做法思考

假设一个UI,有这样4块区域:

收到Response响应后,进行内容刷新。刷新分为几种:1,2,3,4.12,13,23,24。整个面板刷新是1,2,3,4。

用传统的做法肯定一个函数一个函数去写,或者几个刷新函数,但是参数一大堆。

最近针对这个问题有个新的思路,首先有一个面板操作对象,保存关键的面板操作。然后刷新函数只有一个,最大的刷新

刷新完之后,通过面板操作对象,还原面板状态。

但是有个缺点,面板操作对象得自己设计。每次都整体刷新会造成性能损失。

还有个想法,要么把面板刷新分出来写,刷新函数只有一个,面板操作对象也会记录面板状态。

但是刷新的时候,会根据面板状态智能刷新。就是说,刷新对象直接保存那个地方脏了,然后刷新的时候直接Refresh(mRefreshObject);

有的刷新是异步的,要刷新完成后执行数据,其实因为行为都一样,加个回调就好了。这个不是问题

时间: 02-22

Unity UI的刷新做法思考的相关文章

全面理解 Unity UI 系统

[狗刨学习网] 随着 Unity 4.6 发布,新 UI 系统终于与大家见面了. RectTransform Unity UI 系统使用 RectTransform 实现基本的布局和层次控制.RectTransform 继承于 Transform,所以 Transform 的所有特征 RectTransform 同样拥有.在 Transform 基础上,RectTransform 增加了 轴心(pivot).锚点(实际上是用 anchorMin.anchorMax 两个点定义的矩形区域).和 尺

Unity UI大小动态设置(Resize Unity UI RectTransform)

我们在开发过程中发现,要调整Unity UI元素的大小,RectTransform提供了sizeDelta属性可以用来动态修改RectTransform的大小,但同时我们也google到另外一个修改RectTransform大小的方法,方法如下: 1 public static void SetRectTransformSize(RectTransform trans, Vector2 newSize) 2 { 3 Vector2 oldSize = trans.rect.size; 4 Vec

unity UI事件

由于工作需要到持续按键,所以了解了一下unity UI事件,本文主要转载于http://www.cnblogs.com/zou90512/p/3995932.html?utm_source=tuicool&utm_medium=referral,并对相关问题进行解释. 我们最常用到的就是unity的button组件,其实button组件所响应的事件为unity众多ui事件中的PointerClick事件,unity的ui事件如下图所示: 实现响应事件有以下三种: (一)在相关UI控件上挂脚本,脚

unity UI如何开启(显示)或者关闭(隐藏)Panel界面最好?

https://segmentfault.com/a/1190000012357091 unity UI如何开启(显示)或者关闭(隐藏)Panel界面,相信大家都是知道的,但是如何做最好呢? 可能大家一般开启/关闭界面的方法就是直接SetActive吧.这样做通常是可以的,简答快速地解决需求,但是它又两个问题:第一,Disable掉的物体上面的脚本也不运行了,而很多时候我们需要那个脚本运行.这样就不能用挂在自己身上脚本把自己SetActive(true)或者SetActive(false).如果

unity ui中使用onmouseover

unity ui中鼠标移进或者移出的触发方式与2d.3d的不同,2d.3d物体使用的是onmouseover,ui使用的是OnPointerEnter.需要实现以下两个接口. public class TrackMouse: MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { // Called when the pointer enters our GUI component. // Start tracking the mou

Unity UI的功能解锁,红点Tips,特效触发的做法思考

首先解锁比较特殊,有明确的行为,80%都是判断角色等级,然后进行按钮灰显或者隐藏的操作. 而特效和Tips没有明确的行为. 主要需要取舍的2点是主动调用还是回调被动调用,被动调用意味着代码会很乱.没有一个统一的入口,但是主动调用需要传Object参数,也很麻烦. 首先我否决了在层级面板绑定的做法,还是传入路径,但是会初始化一下: public abstract class CBWidget : MonoBehaviour { public abstract void Init(object ho

Unity UI和引用的管理中心

我们来谈谈Unity的UI, 通常会写一些UI页面,当A页面需要去操作B页面的时候. 至少要获取B页面的引用吧! 一般新人都会在组件的写一个public GameObject UIB页面的属性, 然后通过拖放的方式获取B页面的引用. 当你的UI多的时候拖的方式就很难找到的页面被那些引用了.  =.=有的时候你就是不想拖放方式获取B页面引用,反正看起来总觉得怪怪的. 我们来了解下UI管理中心.   一.管理中心: 我们创建一个类来专门管理UI的引用, 如果页面A想要获取页面B的引用,直接向管理中心

关于unity中字体的一些思考

unity中的字体主要分为两大类:动态字体和静态字体.关于这两方面,下面是我个人一些简单思考: 一.静态字体 主要是用来做一些表现,即通常所说的美术字.项目中用的比较多的,应该是美术数字,即0-9. 对于UI很可能会将美术数字单独制作成一张图集,里面最多再包含一些特殊的符号,比如“,”.“:”等. 对于战斗场景,特别是像MMO或者RPG,战斗过程人物冒血.战力变化等,也许不仅仅是需要数字,还可能用到特殊的美术文字.在同屏人数较多的情况下,如果美术文字与美术数字分别单独占用一个图集将会造成大量的d

GJM :Unity UI 之 UGUI 开发

转载URL:http://www.manew.com/thread-41633-1-1.html 最近因为要做各种UI控件,于是与UGUI杠上了.首当其冲的就是RectTransform,最坑爹的是,这货竟然不是UGUI框架的,代码竟然封装在unityengine里面,所以,不得不吐槽下unity的开源动机,根本就是留一手,估计只是因为自己的研发力量不足,所以开放一部分出来而已.       RectTransform继承于Transform,配合Canvas专门交给UGUI使用,具体这边就不展