整理自知乎,文/王致远

以我的项目经历来说,要保证通用性必须分清需求是框架需要还是项目需要。举一个例子,所有的项目都需要一个弹窗提示的接口,但是不同项目弹窗都不一样,当时做的时候我没有想好怎么分离,那就放到项目类库里,保证框架不受影响,以后再重构。

下面根据题主提的要点针对性说下方案(以NGUI框架为基础,UGUI还在研究中):UI和场景中物体的交互如何控制

目前遇到的场景中交互有几种:

类似血条的显示:通过摄像机转换坐标的方法转换为UI坐标来同步血条位置。

对点击等操作的响应:属于控制管理器,不应该放在UI框架中,但是UI框架需要提供UI尺寸和实际尺寸的比例便于规划控制范围。

3D物体的展示:可以直接放在界面中也可以使用renderTexture,前者更方便。

切换场景时对 UI 如何处理

虽然unity提供了Scene这个功能给我们使用,但是我个人的最终目标是将整个游戏运行在一个场景中,但这并不影响UI框架。一个场景一个单例的管理器(M2),还有一个跨场景的管理器(M1),M2负责具体的创建和关闭,M1负责对象池之类的功能。如果多场景,场景切换时M2实例和界面就都销毁了,不需要特别处理;如果单场景,创建和销毁都已经由M2实例负责了。UI如何分组/分类以方便管理

个人看来这一条本身提的比较模糊,因为可以理解为资源的管理也可以理解为结构的管理,下面分别回答。

资源管理:小的项目可以使用公用图集(+Texture)的方式,大的项目UI资源太多,只靠公用图集肯定会造成内存的严重占用,所以建议是公用图集+功能图集(+Texture)。功能图集就是一个功能模块的公用图集,在功能操作完毕时就可以释放掉了。这里涉及到的细节太多,就不展开了。

结构管理:我的思路是分为三类:1控件,就是button、label、sprite等等。(像buttonGroup就是button的组合,使用代码创建和控制)2弹窗/界面/列表项,这三者都由控件组成。3共用布局,这一类是为了节省时间而分的,比方说卡牌游戏中反复出现的卡牌布局其实就是共用布局,每个界面重复制作显然浪费,是否有这类关键在于UE结构是否明确和复杂布局的复用程度。如何统一管理UI的深度

这条可以引申为Z坐标(如果UI中有3D物体或者UI本身就是3D的)、renderQueue、界面的调用顺序等全局属性的管理。这些内容都应该在界面制作的时候就记录在界面信息上,在创建、聚/失焦、关闭界面时记录在管理器中。

UI本身的深度其实很好管理,麻烦在UI上可能会有3D物体和特效,不同的shader可能会导致不同的问题。打开、关闭时的动效,以及被遮挡时的动效

动效本身其实更应该当作项目需求而不是框架需求。首先建议有单独的动效管理器,其次如果项目规划中对动效规划不明确,可以放在具体实现中。

如果项目中没有靠谱的UE设计,框架做得越多其实越累。引用程序界的质能公式:error=(more code)^{2}

3DUI相比2D多了很多问题,要提前想清楚,比方说在界面上有3D物体的情况下(不用renderTexture)打开弹窗时,Z坐标和缩放的管理。

ui动效 unity_基于Unity中的NGUI插件,通用的UI如何设计?相关推荐

  1. 基于 Unity 中的 NGUI 插件,通用的 UI 如何设计

    以我的项目经历来说,要保证通用性必须分清需求是框架需要还是项目需要.举一个例子,所有的项目都需要一个弹窗提示的接口,但是不同项目弹窗都不一样,当时做的时候我没有想好怎么分离,那就放到项目类库里,保证框 ...

  2. ui动效 unity_针对Unity3D的小游戏UI框架——IceCreamView

    前言 IceCreamView是什么? IceCreamView(以下简称ICView)是一套针对Unity3D的小游戏UI快速构建框架. 同时ICView是一套面向组件开发模式的UI框架,以容器+组 ...

  3. ui动效 unity_【FairyGUI Unity】使用动效功能实现血条UI扣血与加血的缓动效果

    原理 血条使用进度条组件,可以得到当前值与最大值. 通过动效-改变缩放可以让图片宽度从1到0按百分比变化. 动效可以指定播放动效的时间范围 组件设计 创建一个进度条组件,作为血条. bar是实际血量条 ...

  4. ui动效 unity_简易 Unity3D UI 框架

    看见一篇介绍 Unity3D UI 框架编写的文章,并且给出了示例代码.然后去了解了一下.讲道理,示例代码蛮乱的,不知道有一些是不是直接从项目代码拷贝然后简单修改,对于一个简单的框架来说,有很多不必要 ...

  5. 仪表特效——AE在UI动效设计中的应用

    动效设计是UI设计中不可或缺的一环.随着硬件性能的发展和动效输出方式的优化,大家对动效的认知也从最初的认为动效只是为了美观酷炫,到逐渐认识到动效对于提升用户体验和产品需求的重要作用. 最近几年,除了老 ...

  6. xd可以用ui动效效果吗_通过动画使UI设计栩栩如生:Adobe XD和After Effects

    xd可以用ui动效效果吗 Note - If you don't fancy splashing out on an Adobe license, you can trial their produc ...

  7. 2020年最值得推荐的10款UI动效设计工具

    动效设计在最近几年的各种网页设计和App设计中的表现相当抢眼.各种令人惊叹的创意和流畅自然的动作设计迅速捕获了用户的视线,极大地提升了品质感和转化率.而要制作出效果卓绝的UI动画效果自然也需要优秀的软 ...

  8. 动效设计原理:从卡通动画到UI动效

    UI是基于静态页面来设计的,页面之间通过跳转切换.在设计过程中,设计师很重视单页的视觉效果,却经常忽略了对界面跳转的处理.这些未经处理的跳 转由于没有提供足够的预期,所以用户在使用时经常会觉得困惑.与 ...

  9. 剥茧抽丝做 UI 动效,其实很简单

    作者 / Jonas Naimark,Google Material Design 团队动效设计师 动效有助于改善 UI 的表现力和易用性.它拥有很大的潜力,但它也可能是所有设计学科中最不被人了解的一 ...

最新文章

  1. stm32 内部sram大小_STM32第三天
  2. 【机器学习入门笔记6:OpenCV像素的读取与写入】20190204
  3. Luogu P3321 [SDOI2015]序列统计
  4. javaScript学习之路(1)词法结构
  5. Android系统性能优化(73)---总结
  6. 学习总在继续......
  7. idea项目乱码问题
  8. jetson 安装atp-get install qt时出现 unable to locate 或者dependencies unmet的报错
  9. Hadoop—SequenceFile文件的数据格式(1)
  10. c#类的多态和文件流复习
  11. POJ 2187 凸包旋转卡壳
  12. Eclipse问题解决
  13. 贴片钽电容耐压不符会导致爆炸
  14. 8年SQL,我换了5次职业方向
  15. 拼音字母匹配排序php,小程序实现仿通讯录,拼音字母排序
  16. TVS 瞬态抑制二极管指南
  17. 很多人在Google Play商店购买或下载APP时出现问题,例如在你新安装的系统恢复APP或想要安装心愿单中的APP时,Play商店出现不能加载等错误,这实在是太烦人了。 所以,我通过搜索,把可
  18. windows c语言新建dos,dos命令怎么用_DOS下创建文件、文件夹
  19. java 生僻字 问号_csv导出姓名生僻字变问号
  20. matlab 层次聚类不均等巨雷,matlab层次聚类

热门文章

  1. HEX转BIN 小技巧分享
  2. oracle 判断一年有多少周
  3. 原创-照片/图片批量处理小程序(C#/wpf)
  4. 如何证明一门编程语言是图灵完备的?是否图灵完备,对语言来说会产生哪些影响?
  5. 汉诺塔问题——“分步和”的规律(一种全新的理解)
  6. Android——摇一摇
  7. 计算机毕业设计JAVA校园内推系统mybatis+源码+调试部署+系统+数据库+lw
  8. ibm urbancode example
  9. docker19.03最新版本安装并配置加速器
  10. Linux网络协议栈3--neighbor子系统