Unity跨平台UI解决方案:可能是最全的FairyGUI系列教程(1)

反向遮罩(挖洞)

效果和正常遮罩相反,也就是可见的区域变不可见,不可见的区域变可见。

使用图形(Graph)作为遮罩时,有图形的区域内容不可见,例如,一个圆形,则圆形区域内不可见,其他区域可见。

使用图片(Image)作为遮罩时,图片内透明度为0的像素对应区域的内容可见,反之不可见。超出图片区域的内容可见。

扩展

这个功能就相当有意思了,刚才我们说了,中央操作区也是一个组件,一个组件就相当于一个页面,一般都是只有一个主页面,当你的页面复杂或者想要分开管理的时候可以创建多个组件,然后放到一个组件里,将这个组将当成主页面。当某个组件(页面)复用性高的时候,这种方法很有用。

Android里面布局代码过多的时候,通常都会提炼出一个布局,或者复用性较高的布局提炼出来(比如APP的标题栏复用很高),这样后续其他布局使用的时候直接使用include关键字直接引入布局,相当便利。

当你选择扩展为“按钮”的时候,会发什么效果?

修改保存后妥妥的发现组件的图标变成了按钮的图标;

这时候我就产生疑问了:难道按钮进度条这些都是用组件封装的?

我选择不同的扩展,保存后发现组件的图标会对应修改,表现出的效果相当明显了

  1. 按钮/标签/进度条/下拉框等功能都是组件修改封装而来

  2. 组件就相当于基类,你想要实现其他功能,可以在组件上进行修改封装,之后在主组件(主布局)中使用

  3. 元件包含基础元件/组合型元件/特殊元件,是官方已经封装好的控件,上面元件有分类,组件就包含元件里面的组合型元件,组件还可以凭你的想象自由组合成新控件

滚动容器

对组件或者列表设置了“溢出处理”为“水平滚动”、“垂直滚动”,“自由滚动”后,组件或者列表即成为滚动容器。点击“溢出处理”旁边的按钮,可以设置详细的滚动的相关属性。

  1. 触摸滚动效果 是否允许用户直接拖拽滚动区域内的内容。一般在移动平台上使用,PC上较少,PC上一般需要拖动滚动条,或使用鼠标滚轮。

  2. 滚动条组件 设置滚动条资源。一般不需要设置,全局有一个设置,在主菜单“文件->项目属性->默认值”里。如果你要使用不同于全局设置的滚动条资源,那么在这里设置。

  3. 下拉/上拉刷新组件 设置上拉刷新或下拉刷新时需要显示的组件。一般是你封装好的组件

  4. 页面模式 以视口大小为页面大小,每次滚动的距离是一页。一般在移动平台上使用,PC上较少,拖动滚动条进行滚动操作与这个模式冲突。

  5. 禁用裁剪边缘 一般情况下,视口不包括边缘设置的部分,也即是容器设置四周的留空部分也会被裁剪。如果需要,可以勾选这个选项,使容器四周的留空部分不被裁剪。

  6. 浮动显示 勾选后,滚动条不占据视口的位置,而是直接覆盖在视口上面。例如一个适用于手机的滚动条,它是细条且半透明的,只在滚动时才显示出来,用于提示滚动位置。那么我们把它设置为“浮动”,这样就不会挤占视口的显示空间。

控制器-重点

FairyGUI的核心功能之一,提供了几个需求支持:

  1. 分页 一个组件可以由多个页面组成。

  2. 按钮状态 按钮通常有按下、鼠标悬浮等多个状态,我们可以利用控制器为每个状态安排不同的显示内容。

  3. 属性变化 利用控制器,我们可以使元件具有多个不同的形态,并且可以方便地切换。

每个组件可以创建多个控制器,且互不影响

在组件中点击添加控制器会跳出创建框

名称       为控制器名称,同一个组件内的不要同名

备注名    帮助你理解的注释名,会和下方的导出为组件属性联合使用,勾选导出为组件属性,当你将这个组件拖动到其他的组件上时,右侧属性区会显示

页面       你可以理解成状态,既然是控制器,就要控制出效果,比如按钮(滑过/点击/抬起等状态),设置不同的动作效果

你可以单独新建按按钮看看,按钮的上方就有一个默认名为button的控制器,有4个状态(页面)

属性控制       创建好控制器后,想要使用她,你选中一个元件,在右侧属性栏会有“属性控制”面板,隔这选择即可。她有显示/位置/大小/颜色/外观/动画/文本等控制。

她还可以实现联动效果:

  1. 与按钮联动,当点击不同按钮后,跳转不同页面

  2. 与列表联动,就像Android的列表一样点击一个item显示出对应索引的页面

  3. 与下拉框联动,效果同上

具体效果我们会在后续的实际案例中学学习

关联系统

不管是前端还是移动端或者PC端,应该都有这种相对布局体系。

比如移动端的相对布局(RelativeLayout)

FairyGUI任何元件可以互相关联,在右侧有关联选项,可以实现布局自适应,对话框自适应,动态变化的内容等。

比如:玩游戏的时候有全屏或者小屏的时候,界面大小修改后UI布局仍然保持的相当好,想想当年天龙八部窗口化UI布局就是这种机制。

按钮和下拉框

常用的基础组件,传统UI框架中的RadioButton、Checkbox、List Item等,在FairyGUI里通通都是按钮。

这里注意下要想改变按钮不同状态的效果,需要先在右侧属性控制中选择控制器

下拉框的创建已经很简单了

提前切好图,按照三部曲即可创建出来,创建好后会有三个文件

Item是下拉框内容item,双击进去后还可以自定义里面的内容

Popup是列表控件,同样可以双击进去自定义

除了在这编辑,列表需求多数都是请求自动变化的,FairyGUI同样支持代码中设置item集合内容,和传统集合一样,要想访问集合中的item通过索引即可从0开始。有一点不同的就是上图的“值”(索引),你不写的话默认从0开始。当你修改后就需要索引值就是你修改的。比如上图,我如果没修改访问叮叮当1 就是getIndex(0),当时我把值修改为1了,访问叮叮当就是getIndex(1)

还有更多按钮详情(状态分析普通按钮selected属性无效,单选按钮组的多个实现普通按钮方式 控制器+单选按钮连接方式)讲解在……,我还没上传,回头小空发布后更新出来链接。

进度条/滑动条/滚动条

进度条

可以改变元件的宽度/高度/填充比例,分为横向和纵向,还有正向和反向;创建也很简单,一个进度条背景,一个伸缩条即可。

如何显示进度条当前进度?

双击进入进度条,添加个文本控件,然后名称改为“title”,要想和进度条最右侧实时跟随移动,设置关联即可。

如何实现带有跟随动画的进度条?

细心的朋友发现了,还有个小狐狸跟随进度条,平时玩游戏切换场景的时候经常看到进度条不是单调的横线,还有些小动画跟随,增强灵动性。

这个实现和上面的文本添加类似,区别在于你要想拖入动画的话,可以在编辑进度条的时候增加个装载器,装载器放入动画文件,想要和进度条进度试试跟随的话,再设置小狐狸和进度条的伸缩条的关联设置为右右关联

如何监听进度条?

进度条最大的作用就是和程序相结合,用于加载中,流程进度节点等,所以我们要能修改和监听进度条

滑动条

她和进度条就像双胞胎一样相似,但是她多出个按钮让用户自己拖动改变进度值。

创建也很简单点击资源->新建滑动条按照提示添加即可

想要自定义她的样式也是可以的。

滚动条

在FairyGUI中,滚动条是可以随心设计的。滚动容器和滚动条是独立的,也就是说,即使没有滚动条,滚动容器也能完成滚动的功能。

她的创建同样是点击主菜单“资源”->“新建滚动条”,然后按照向导的提示一步步完成即可。

列表-重点

这是个特殊的扩展,应用场景也挺广,比如内容展示,邮箱,若项目时教学类的项目,少不了各种题目各种列表。

点击侧工具栏的 按钮生成一个列表。上面说下拉框的时候也借助了列表。

列表属性丰富多彩

  1. 渲染顺序       定义item的显示顺序与它的列表中的顺序的关系。

  2. 选择模式       支持四种选择模式:无,单选,多选(使用shift键),多选(单击选择)。item要参与到单选有一个前提,是必须为单选按钮,如果不是单选按钮,则不会参与到选择模式中。单选是指同一时间只能有一个item被选中;多选则允许有多个,多选的操作方式有两种,一种是使用shift键进行多选,不过这需要键盘的支持,不适合移动设备;另一种是每个item单击即选中,再单击就取消选中的方式,不需要键盘的支持。

  3. 选择控制       可以绑定一个控制器。当列表发生翻页滚动时(溢出处理必须为三种滚动之一,滚动必须勾选为页面模式),控制器也同时跳转到相同索引(页码)的页面。反之亦然,如果控制器跳转到某个页面,那么列表也同时滚动到相同索引(页码)的页面。

  4. 项目资源       设置列表默认使用的item类型,也就是item样式

  5. 编辑列表数据       除了设置固定的数据外,代码中还支持动态设置数据内容

当你对列表增删改后,列表是自动排列和刷新的,不需要调用任何API。自动排列时会根据列表的布局设置item的坐标、大小和深度,所以不要自行设置item的位置,也不要设置sortingOrder尝试去控制item的深度。除了一个例外,垂直布局的列表只会自动设置item的y坐标,如果你需要item有一个水平位移的效果,你仍然可以修改item的x值。水平布局的也是一样道理。

在实际应用中,列表的内容通常被频繁的更新。典型的用法就是当接收到后台数据时,将列表清空,然后再重新添加所有项目。如果每次都创建和销毁UI对象,将消耗很大的CPU和内存。因此,GList内建了对象池。

注意,不管是添加合适移除都要使用对应的对象池方法,不要搞什么AddChild添加RemoveChildrenToPool来清除,这明显不一致,会导致对象池不断增大,造成内存溢出。

更多详细建议看官方文档

她是列表的特殊个例,实现的功能为类似手机里面的文件夹列表,具有层级关系。

她的创建仍然是先创建列表,然后列表右侧有激活树视图的勾选,勾选后在编辑内容时,就会增加个层级选项。

弹出菜单和窗口

弹出菜单

弹出界面可以说很常见了,这些组件会在用户点击空白地方的时候自动消失,Android里面经常用到。

点击“资源->新建弹出菜单…”,然后根据向导完成。菜单组件里的关键元素是命名为list的列表组件,列表的溢出处理模式应该选择为可见,因为一般来说,菜单都是显示全部item的,不需要滚动。

创建完成后在Unity中用代码进行管理

UIConfig.popupMenu 设置全局菜单资源

GRoot.inst.ShowPopup 弹出组件,可以指定弹出位置在哪个下方

PopupMenu 菜单类,管理弹出菜单

窗口

窗口花样百出,可以设置任意组件作为她的显示内容,且窗口支持拖动。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
img

最后

由于题目很多整理答案的工作量太大,所以仅限于提供知识点,详细的很多问题和参考答案我都整理成了 PDF文件

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

QOfi-1712208587888)]

[外链图片转存中…(img-Gu4NdypT-1712208587888)]

本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unity编程中的UI资源全套是指为了在游戏或应用程序中构建用户界面所需的所有资源。 UI资源包括各种UI元素,如按钮、文本框、下拉框、滑动条等,用于用户与游戏或应用程序进行交互。这些元素通常以图形的形式呈现,并且需要在程序中进行适当的布局和交互逻辑设置。 Unity提供了许多内置的UI组件和资源,以方便开发人员进行UI设计和开发。通过使用UnityUI编辑器和资源浏览器,开发人员可以通过简单拖放操作将预设的UI元素添加到场景中。此外,Unity还提供了许多UI脚本和函数,用于处理用户输入和UI图形的交互。 除了Unity内置的UI资源,开发人员还可以通过购买或下载其他第三方的UI资源包来丰富其项目的视觉效果。这些第三方资源包可能包含更多样化的UI元素和效果,以满足特定项目的需求。 总之,Unity编程中的UI资源全套是指为了构建用户界面所需的所有内置和第三方资源,开发人员可以利用这些资源来设计和开发游戏或应用程序的用户界面。 ### 回答2: Unity是一种跨平台的游戏开发引擎,它提供了一整套的工具和资源来帮助开发者创建各种类型的游戏应用。关于Unity的PRG(程序)和UI(用户界面)资源全套,可以具体理解为Unity开发环境中所需的所有相关资源。 首先,PRG资源全套指的是编程方面所需的资源。Unity使用C#作为主要编程语言,因此开发者需要掌握C#编程知识并了解Unity内部的API(应用程序接口)以及其他游戏开发所需的相关概念。此外,Unity还提供了各种编程资源,如官方文档、示例项目、教程和论坛等,这些资源可以帮助开发者学习和掌握Unity的编程能力。 其次,UI资源全套指的是用于游戏用户界面设计的资源。在游戏开发中,用户界面是与玩家进行交互和展示信息的重要组成部分。Unity提供了丰富的UI设计工具和资源,如UI元素(如按钮、文本框、滑动条等)、UI动画效果、UI音效等。同时,Unity还提供了UI编辑器,可以轻松地创建和调整游戏中的各种UI界面,并通过脚本来实现与其他游戏系统的交互。 综上所述,Unity的PRG和UI资源全套包括了开发者所需的编程资源和游戏用户界面设计资源。这些资源能够帮助开发者快速上手Unity开发环境,提供了学习、开发和设计游戏所需的工具和支持。 ### 回答3: Unity PRG UI资源全套是指一套适用于Unity游戏开发的UI资源集合。这套资源包括各种可以用于界面设计的元素,如按钮、标签、文本框、滑块等等。这些资源通常具有一致的风格和设计,以便在游戏中统一使用。 Unity PRG UI资源全套的作用是提供给开发者一种快速搭建游戏界面解决方案。通过使用这套资源,开发者可以省去自己设计和制作UI元素的时间和精力,从而集中精力于游戏的逻辑和功能实现上。 这套资源通常由专业的UI设计师或团队根据游戏主题和风格进行设计和制作。他们会考虑到不同分辨率和设备的兼容性,以保证游戏在各种平台上的UI都能够适应和展示良好。 Unity PRG UI资源全套一般以包的形式提供,开发者可以直接导入到Unity引擎中进行使用。导入后,开发者可以根据游戏的需要对UI元素进行修改和定制,以满足自己的设计需求。 使用Unity PRG UI资源全套可以大大加快游戏开发的进度,尤其对于那些没有UI设计经验或时间紧张的开发者来说。同时,由于这套资源是专业的设计师或团队制作的,因此UI的质量和美观度也能大幅提升,使得游戏更加具有吸引力和专业感。 综上所述,Unity PRG UI资源全套是一套适用于Unity游戏开发的UI设计资源集合,能够帮助开发者快速搭建游戏界面并提升游戏质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值